{"openapi":"3.2.0","x-id":["reitit.openapi/default"],"info":{"title":"T-rank Kraken","description":"openapi3 docs","version":"0.0.1"},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"Authorization","bearerFormat":"ApiKey"}},"schemas":{"kraken.api.v2.subsidiaries-response":{"type":"object","properties":{"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"request":{"type":"object","properties":{"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_power":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_simcon":{"type":"number","maximum":100,"exclusiveMinimum":0},"page":{"type":"integer","minimum":1},"page_size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0},"pages":{"type":"integer","minimum":1},"sort_by":{"type":"string","enum":["name","level","level1_integrated","integrated","voting_power"]},"max_level":{"type":"integer","minimum":1},"exclude_branch":{"type":"boolean"}},"required":["total","pages","sort_by","exclude_branch"]},"subject":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"self_ownership":{"description":"The integrated ownership the requested company has in itself. Only present when the requested entity is a legal person or an aggregate.","type":"number","minimum":0,"maximum":100},"completeness":{"description":"A percent indicating the completeness of the shareholder data for the requested company. The number is the sum of integrated ownership for all top level shareholders that are either natural persons, listed companies or has any of the entity types `L`, `J`, `M`, `S`, `Z`, `E`, `D`. Only present when the requested entity is a legal person or an aggregate.","type":"number","minimum":0,"maximum":100}}}]},"subsidiaries":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0}}}},"required":["ownership"]}]}}},"required":["meta","request","subject","subsidiaries"]},"kraken.graph.beneficial-graph-response":{"description":"Endpoints that returns a graph, put the graph data into the `data` property of the response object.","type":"object","properties":{"data":{"type":"object","properties":{"nodes":{"description":"Each object represents a vertex.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"owner":{"description":"This entity as an owner of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"holding":{"description":"This entity as a holding of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"total_owner":{"description":"Deprecated, use `owner.integrated`. Integrated ownership this entity has in the requested company.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"total_owns":{"description":"Deprecated, use `holding.integrated`. Integrated ownership requested company has in this entity.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"level":{"description":"Deprecated, use `owner.level` and `holding.level`. Distance in hops from root node according to strongest path algorithm, as an owner when the entity is both.","type":"integer","minimum":0,"deprecated":true},"star":{"description":"Deprecated, use `owner.star` and `holding.star`. `true` if the `total_owner` calculation, or `total_owns` for an entity that is no owner, is (partly) based on total ownership links.","type":"boolean","deprecated":true},"power_owner":{"description":"Deprecated, use `owner.voting_power`. Voting power this entity has in requested company.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"power_owns":{"description":"Deprecated, use `holding.voting_power`. Voting power requested company has in this entity.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"suspect":{"description":"Deprecated, use `owner.suspect` and `holding.suspect`. `true` if `power_owner`, or `power_owns` for an entity that is no owner, is (partly) based on suspicion of voting power.","type":"boolean","deprecated":true}}},{"type":"object","properties":{"simcon_owner":{"description":"The highest threshold of the available precalculated values for which this entity is beneficial owner in requested company according to the Recursive model.","type":"number","maximum":100,"exclusiveMinimum":0},"owner_stats":{"description":"Some statistics about the ownership data we have for this company.","type":"object","properties":{"leaf_sum":{"type":"number","minimum":0},"num_shareholders":{"type":"integer","minimum":0},"sum_direct":{"description":"Sum of direct shareholding.","type":"number","minimum":0,"maximum":100},"sum_voting_rights":{"description":"Sum of direct voting-rights.","type":"number","minimum":0,"maximum":100},"max_total":{"description":"The largest total ownership link going into this node.","type":"number","minimum":0,"maximum":100}},"required":["num_shareholders"]},"root":{"description":"`true` for the requested entity only.","type":"boolean"}}}]}},"edges":{"description":"Each object represent an edge.","type":"array","items":{"type":"object","properties":{"source":{"description":"The ID of the origin node","$ref":"#/components/schemas/kraken.node-id"},"target":{"description":"The ID of the target node","$ref":"#/components/schemas/kraken.node-id"},"direct_weight":{"description":"Direct ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"direct_text":{"description":"Text representation of direct ownership link.","title":"Non-empty String","type":"string","minLength":1},"total_weight":{"description":"Total ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total_text":{"description":"Text representation of total ownership link.","title":"Non-empty String","type":"string","minLength":1},"voting_rights":{"description":"Direct voting-rights, in percent, this link represents.","type":"number","minimum":0,"maximum":100},"power_direct":{"description":"Deprecated, no longer returned.","type":"number","maximum":1,"exclusiveMinimum":0,"deprecated":true},"provider":{"title":"Non-empty String","type":"string","minLength":1},"info_date":{"title":"Date","type":"string","format":"date"},"power_total":{"description":"Marking that source controls target. Only used for Beneficial owner maps when model Controlling shares, Control + Ownership or Ownership + Control is turned on.","type":"number","maximum":100,"exclusiveMinimum":0}},"required":["source","target"]}},"beneficial_owners":{"description":"Each object represent a beneficial owner.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"models":{"description":"All models the Beneficial owner satisfies.","type":"array","items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]},"uniqueItems":true},"controlled_shares":{"description":"An upper bound for the votes this person may control, directly + through the entries in the through array. Only present if `model=control`, `model=control+ownership` or `model=ownership+control` is on.","type":"number","maximum":100,"exclusiveMinimum":0},"through":{"description":"List of node objects being direct shareholders of requested company, which this natural person controls. Only present if `model=control`, `model=control+ownership` or `model=ownership+control` is on.","type":"array","items":{"type":"object","properties":{}}}}}]}},"simplified":{"description":"`true` if the graph has been simplified because of complexity/size.","type":"boolean"}},"required":["nodes","edges","beneficial_owners"]},"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"request":{"type":"object","properties":{"models":{"type":"array","items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]},"uniqueItems":true},"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_simcon":{"type":"number","minimum":0,"maximum":100},"threshold_control_capital":{"type":"number","minimum":0,"maximum":100},"threshold_control":{"type":"number","minimum":50,"maximum":100},"threshold_vp":{"type":"number","minimum":0,"maximum":100},"include_legal":{"type":"boolean"},"include_na":{"type":"boolean"}},"required":["models","threshold_integrated","threshold_simcon","threshold_control","threshold_vp","include_legal","include_na"]}},"required":["data","meta","request"]},"kraken.node-id":{"title":"Node ID","description":"Primary ID for an entity or an alternative ID on the format `alternative_id_scheme:alternative_id`","type":"string","minLength":1,"example":"NO99999999"},"kraken.api.v2.ownership-indicators-response":{"type":"object","properties":{"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"subject":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"self_ownership":{"description":"The integrated ownership the requested company has in itself. Only present when the requested entity is a legal person or an aggregate.","type":"number","minimum":0,"maximum":100},"completeness":{"description":"A percent indicating the completeness of the shareholder data for the requested company. The number is the sum of integrated ownership for all top level shareholders that are either natural persons, listed companies or has any of the entity types `L`, `J`, `M`, `S`, `Z`, `E`, `D`. Only present when the requested entity is a legal person or an aggregate.","type":"number","minimum":0,"maximum":100}}},{"type":"object","properties":{"num_shareholders_direct":{"description":"Number of direct shareholders.This includes shareholders with a total ownership link into the requested company.","type":"integer","minimum":0},"num_shareholders_total":{"description":"Total number of direct and indirect owners.","type":"integer","minimum":0},"num_shareholders_legal":{"description":"Number of direct and indirect owners that are legal persons.","type":"integer","minimum":0},"num_shareholders_unidentified":{"description":"Always `0` - information not available","type":"integer","minimum":0},"max_shareholder_distance":{"description":"Maximum distance, in number of hops, from the requested company to a shareholder.","type":"integer","minimum":1},"sum_shareholders_unidentified":{"description":"Sum of integrated ownership for all unidentified shareholders (shareholders where only the name is known, could be both natural and legal persons). There is never shareholder information available for unidentified shareholders, guaranteeing that integrated ownership is not double counted in this number.","type":"number"},"num_selfowned_owners":{"description":"Number of significant shareholders (shareholders with an integrated ownership of at least 10%) that has an integrated ownership in themselves of at least 10%.","type":"integer","minimum":0},"num_high_vp_low_integrated":{"description":"Number of direct and indirect shareholders that have at the most a moderate integrated ownership (max 25%) in the requested company, but significant power (at least 49.8%).","type":"integer","minimum":0},"ownership_cc":{"description":"List of integrated ownership by `type` and `country`. Shareholders of unknown origin are grouped into one entry with `country` set to `null`.","type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["legal","natural","aggregate","unidentified"]},"country":{"oneOf":[{"$ref":"#/components/schemas/kraken.country-code"},{"type":"null"}]},"num_shareholders":{"description":"the number of integrated ownerships","type":"integer","minimum":1},"sum":{"description":"the sum of integrated ownership","type":"number"}},"required":["type","country","num_shareholders","sum"]}},"ownership_entity_type":{"description":"List of integrated ownership by `entity_type`.","type":"array","items":{"type":"object","properties":{"entity_type":{"description":"The entity type code from Moody's (BvD), such as `S` for a public authority, state or government.","title":"Non-empty String","type":"string","minLength":1},"num_shareholders":{"description":"the number of integrated ownerships","type":"integer","minimum":1},"sum":{"description":"the sum of integrated ownership","type":"number"}},"required":["entity_type","num_shareholders","sum"]}}}}]}},"required":["meta","subject"]},"kraken.full-node":{"title":"Complete Node","type":"object","properties":{"id":{"title":"Node ID","description":"Primary ID for an entity or an alternative ID on the format `alternative_id_scheme:alternative_id`","type":"string","minLength":1,"example":"NO99999999"},"name":{"title":"Non-empty String","type":"string","minLength":1,"example":"Acme Inc."},"entity_type":{"description":"The entity type code from Moody's (BvD), such as `S` for a public authority, state or government.","title":"Non-empty String","type":"string","minLength":1},"active":{"description":"`false` for dissolved entities.","type":"boolean"},"country":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"grid":{"description":"`true` if the entity has a GRID flag.","type":"boolean"},"listing_status":{"description":"`0=Not listed`, `1=Listed`, `2=Previously listed`","type":"integer","minimum":0},"orbis_id":{"description":"Only legal persons have an OrbisId.","type":"string"},"uci":{"description":"Only natural persons have a Unique Contact Identifier. Entities representing more than one person (e.g. a family) do not have UCI.","type":"string"},"woco":{"description":"`true` if the entity has a World Compliance flag.","type":"boolean"}},"required":["id","name","entity_type","active"]},"kraken.api.v2.beneficial-response":{"type":"object","properties":{"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"request":{"type":"object","properties":{"models":{"type":"array","items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]},"uniqueItems":true},"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_simcon":{"type":"number","minimum":0,"maximum":100},"threshold_control_capital":{"type":"number","minimum":0,"maximum":100},"threshold_control":{"type":"number","minimum":50,"maximum":100},"threshold_vp":{"type":"number","minimum":0,"maximum":100},"include_legal":{"type":"boolean"},"include_na":{"type":"boolean"},"include_intermediaries":{"type":"boolean"}},"required":["models","threshold_integrated","threshold_simcon","threshold_control","threshold_vp","include_legal","include_na","include_intermediaries"]},"subject":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"self_ownership":{"description":"The integrated ownership the requested company has in itself.","type":"number","minimum":0,"maximum":100},"completeness":{"description":"A percent indicating the completeness of the shareholder data for the requested company. The number is the sum of integrated ownership for all top level shareholders that are either natural persons, listed companies or has any of the entity types `L`, `J`, `M`, `S`, `Z`, `E`, `D`.","type":"number","minimum":0,"maximum":100}},"required":["self_ownership","completeness"]},{"type":"object","properties":{}}]},"beneficial_owners":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0},"max_controlled_votes":{"description":"The share of votes controlled by this beneficial owner (the sum of direct ownership and the ownership of all direct owners controlled by the natural person). `max_controlled_votes` could be an upper bound, since na. links are treated to be the maximum possible (100% - sum of direct links) and total ownership links are treated as direct links, with an upper bound derived from direct links. The attribute is only present if one of the models `control`, `control+ownership` or `ownership+control` is enabled and the value is at least `threshold_control_share`.","type":"number","maximum":100,"exclusiveMinimum":0},"intermediary_shareholders":{"description":"Only available if `include_intermediaries` is on. An list of shareholders being in the ownership paths between the subject company and the beneficial owner. The ownership object within these objects relates to the subject company.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0}}}},"required":["ownership"]}]}}}}}},{"type":"object","properties":{"models":{"description":"Models that are requested may be listed here.\n\n","type":"array","items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]},"uniqueItems":true},"unidentified":{"description":"Always `false` - information not available","type":"boolean"},"control_through":{"description":"`VP` Only present if `model=control`, `model=control+ownership` or `model=ownership+control` is on. A list of companies with direct shareholdings in requested company which is controlled by this beneficial owner. Each entry in the array may have the same properties as the `subject` object (except completeness), and in addition, an ownership object similar to one level above.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0}}}}}]}}},"required":["unidentified"]}]}},"legal_persons":{"description":"Corresponding to the `beneficial_owners`, the only difference being that the meta-data attached to each object is the same as in the `subject` object.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0}}}}},{"type":"object","properties":{"models":{"type":"array","items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]},"uniqueItems":true}},"required":["models"]}]}}},"required":["meta","request","subject","beneficial_owners"]},"kraken.graph.graph-response":{"type":"object","properties":{"data":{"type":"object","properties":{"nodes":{"description":"Each object represents a vertex.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.node"},{"type":"object","properties":{"owner":{"description":"This entity as an owner of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"holding":{"description":"This entity as a holding of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"total_owner":{"description":"Deprecated, use `owner.integrated`. Integrated ownership this entity has in the requested company.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"total_owns":{"description":"Deprecated, use `holding.integrated`. Integrated ownership requested company has in this entity.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"level":{"description":"Deprecated, use `owner.level` and `holding.level`. Distance in hops from root node according to strongest path algorithm, as an owner when the entity is both.","type":"integer","minimum":0,"deprecated":true},"star":{"description":"Deprecated, use `owner.star` and `holding.star`. `true` if the `total_owner` calculation, or `total_owns` for an entity that is no owner, is (partly) based on total ownership links.","type":"boolean","deprecated":true},"power_owner":{"description":"Deprecated, use `owner.voting_power`. Voting power this entity has in requested company.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"power_owns":{"description":"Deprecated, use `holding.voting_power`. Voting power requested company has in this entity.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"suspect":{"description":"Deprecated, use `owner.suspect` and `holding.suspect`. `true` if `power_owner`, or `power_owns` for an entity that is no owner, is (partly) based on suspicion of voting power.","type":"boolean","deprecated":true}}},{"type":"object","properties":{"owner_stats":{"type":"object","properties":{"leaf_sum":{"type":"number","minimum":0}}},"root":{"description":"`true` for the requested entity only.","type":"boolean"},"has_more":{"description":"`true` if more ownership information is available for this entity.","type":"boolean"}}}]}},"edges":{"description":"Each object represent an edge.","type":"array","items":{"type":"object","properties":{"source":{"description":"The ID of the origin node","$ref":"#/components/schemas/kraken.node-id"},"target":{"description":"The ID of the target node","$ref":"#/components/schemas/kraken.node-id"},"direct_weight":{"description":"Direct ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"direct_text":{"description":"Text representation of direct ownership link.","title":"Non-empty String","type":"string","minLength":1},"total_weight":{"description":"Total ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total_text":{"description":"Text representation of total ownership link.","title":"Non-empty String","type":"string","minLength":1},"voting_rights":{"description":"Direct voting-rights, in percent, this link represents.","type":"number","minimum":0,"maximum":100},"power_direct":{"description":"Deprecated, no longer returned.","type":"number","maximum":1,"exclusiveMinimum":0,"deprecated":true},"provider":{"title":"Non-empty String","type":"string","minLength":1},"info_date":{"title":"Date","type":"string","format":"date"}},"required":["source","target"]}}},"required":["nodes","edges"]},"dump_date":{"title":"Date-time","type":"string","format":"date-time"},"max":{"type":"integer","minimum":1},"exclude_branch":{"type":"boolean"},"dir":{"description":"The graph type by its name from before the rename.","type":"string","enum":["owner","owns","dual","group"]},"threshold":{"type":"number","minimum":0,"maximum":100},"power_threshold":{"description":"Only present if the user has access to Voting Power.","type":"number","minimum":1,"maximum":100},"id":{"$ref":"#/components/schemas/kraken.node-id"},"extra_link_types":{"type":"array","items":{"type":"string","enum":["all","ADV","FME"]},"uniqueItems":true},"has_more":{"description":"Only present if `type=group`. `true` if there are more members in the corporate group than those returned. If `true`, the `max` request parameter must be adjusted in order to retrieve more of/the whole group.","type":"boolean"}},"required":["data","dump_date","max","exclude_branch","dir","threshold","id"]},"kraken.api.v2.owners-response":{"type":"object","properties":{"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"request":{"type":"object","properties":{"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_power":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_simcon":{"type":"number","maximum":100,"exclusiveMinimum":0},"page":{"type":"integer","minimum":1},"page_size":{"type":"integer","minimum":0},"total":{"type":"integer","minimum":0},"pages":{"type":"integer","minimum":1},"sort_by":{"type":"string","enum":["name","level","level1_integrated","integrated","voting_power"]},"max_level":{"type":"integer","minimum":1},"filter":{"type":"string","enum":["person","legal"]}},"required":["total","pages","sort_by"]},"subject":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"self_ownership":{"description":"The integrated ownership the requested company has in itself.","type":"number","minimum":0,"maximum":100},"completeness":{"description":"A percent indicating the completeness of the shareholder data for the requested company. The number is the sum of integrated ownership for all top level shareholders that are either natural persons, listed companies or has any of the entity types `L`, `J`, `M`, `S`, `Z`, `E`, `D`.","type":"number","minimum":0,"maximum":100}},"required":["self_ownership","completeness"]}]},"owners":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"ownership":{"type":"object","properties":{"direct":{"description":"Direct ownership percentage. Could be `NaN` when the direct ownership is known to exist but the value is unknown.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"The same value as `direct`.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total":{"description":"Total ownership link, percentage (could be `NaN`).","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"integrated":{"description":"Calculated integrated percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"},"level":{"description":"Distance, in number of hops, from requested company to this shareholder.","type":"integer","minimum":0}}}},"required":["ownership"]}]}}},"required":["meta","request","subject","owners"]},"kraken.node":{"title":"Node","type":"object","properties":{"id":{"title":"Node ID","description":"Primary ID for an entity or an alternative ID on the format `alternative_id_scheme:alternative_id`","type":"string","minLength":1,"example":"NO99999999"},"name":{"title":"Non-empty String","type":"string","minLength":1,"example":"Acme Inc."},"entity_type":{"description":"The entity type code from Moody's (BvD), such as `S` for a public authority, state or government.","title":"Non-empty String","type":"string","minLength":1},"country":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"grid":{"description":"`true` if the entity has a GRID flag.","type":"boolean"},"listing_status":{"description":"`0=Not listed`, `1=Listed`, `2=Previously listed`","type":"integer","minimum":0},"orbis_id":{"description":"Only legal persons have an OrbisId.","type":"string"},"uci":{"description":"Only natural persons have a Unique Contact Identifier. Entities representing more than one person (e.g. a family) do not have UCI.","type":"string"},"woco":{"description":"`true` if the entity has a World Compliance flag.","type":"boolean"}},"required":["id","name","entity_type"]},"kraken.threshold":{"title":"Threshold","description":"Float, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`.","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$"},"kraken.country-code":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"kraken.graph.graph-expand-response":{"type":"object","properties":{"data":{"type":"object","properties":{"nodes":{"description":"Each object represents a vertex.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.node"},{"type":"object","properties":{"owner":{"description":"This entity as an owner of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"holding":{"description":"This entity as a holding of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"total_owner":{"description":"Deprecated, use `owner.integrated`. Integrated ownership this entity has in the requested company.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"total_owns":{"description":"Deprecated, use `holding.integrated`. Integrated ownership requested company has in this entity.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"level":{"description":"Deprecated, use `owner.level` and `holding.level`. Distance in hops from root node according to strongest path algorithm, as an owner when the entity is both.","type":"integer","minimum":0,"deprecated":true},"star":{"description":"Deprecated, use `owner.star` and `holding.star`. `true` if the `total_owner` calculation, or `total_owns` for an entity that is no owner, is (partly) based on total ownership links.","type":"boolean","deprecated":true},"power_owner":{"description":"Deprecated, use `owner.voting_power`. Voting power this entity has in requested company.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"power_owns":{"description":"Deprecated, use `holding.voting_power`. Voting power requested company has in this entity.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"suspect":{"description":"Deprecated, use `owner.suspect` and `holding.suspect`. `true` if `power_owner`, or `power_owns` for an entity that is no owner, is (partly) based on suspicion of voting power.","type":"boolean","deprecated":true}}}]}},"edges":{"description":"Each object represent an edge.","type":"array","items":{"type":"object","properties":{"source":{"description":"The ID of the origin node","$ref":"#/components/schemas/kraken.node-id"},"target":{"description":"The ID of the target node","$ref":"#/components/schemas/kraken.node-id"},"direct_weight":{"description":"Direct ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"direct_text":{"description":"Text representation of direct ownership link.","title":"Non-empty String","type":"string","minLength":1},"total_weight":{"description":"Total ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total_text":{"description":"Text representation of total ownership link.","title":"Non-empty String","type":"string","minLength":1},"voting_rights":{"description":"Direct voting-rights, in percent, this link represents.","type":"number","minimum":0,"maximum":100},"power_direct":{"description":"Deprecated, no longer returned.","type":"number","maximum":1,"exclusiveMinimum":0,"deprecated":true},"provider":{"title":"Non-empty String","type":"string","minLength":1},"info_date":{"title":"Date","type":"string","format":"date"}},"required":["source","target"]}},"owners_overflow":{"description":"The links to owners of `expand_id` that `max` left out. Absent when there were none.","type":"object","properties":{"count":{"description":"Number of links left out.","type":"integer","minimum":1},"direct_weight":{"description":"The left-out links' `direct_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}},"total_weight":{"description":"The left-out links' `total_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}}},"required":["count","direct_weight","total_weight"]},"holdings_overflow":{"description":"The links to holdings of `expand_id` that `max` left out. Absent when there were none.","type":"object","properties":{"count":{"description":"Number of links left out.","type":"integer","minimum":1},"direct_weight":{"description":"The left-out links' `direct_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}},"total_weight":{"description":"The left-out links' `total_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}}},"required":["count","direct_weight","total_weight"]},"owner_overflow":{"description":"Deprecated, use `owners_overflow`.","type":"object","properties":{"count":{"description":"Number of links left out.","type":"integer","minimum":1},"direct_weight":{"description":"The left-out links' `direct_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}},"total_weight":{"description":"The left-out links' `total_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}}},"required":["count","direct_weight","total_weight"],"deprecated":true},"owns_overflow":{"description":"Deprecated, use `holdings_overflow`.","type":"object","properties":{"count":{"description":"Number of links left out.","type":"integer","minimum":1},"direct_weight":{"description":"The left-out links' `direct_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}},"total_weight":{"description":"The left-out links' `total_weight`.","type":"object","properties":{"nan":{"description":"Links whose weight is `NaN`.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]},"non_nan":{"description":"Links with a numeric weight.","type":"object","properties":{"sum":{"description":"Sum of the weights.","type":"number"},"count":{"description":"Number of links.","type":"integer","minimum":1}},"required":["sum","count"]}}}},"required":["count","direct_weight","total_weight"],"deprecated":true}},"required":["nodes","edges"]},"dump_date":{"title":"Date-time","type":"string","format":"date-time"},"max":{"type":"integer","minimum":1},"exclude_branch":{"type":"boolean"},"dir":{"description":"The graph type by its name from before the rename.","type":"string","enum":["owner","owns","dual"]},"id":{"$ref":"#/components/schemas/kraken.node-id"},"expand_id":{"$ref":"#/components/schemas/kraken.node-id"},"extra_link_types":{"type":"array","items":{"type":"string","enum":["all","ADV","FME"]},"uniqueItems":true}},"required":["data","dump_date","max","exclude_branch","dir","id","expand_id"]}}},"tags":[{"name":"v2","description":"REST API"},{"name":"v1","description":"Graph API"},{"name":"orbis","description":"Orbis API"}],"security":[{}],"paths":{"/api/v2/beneficial/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"model","required":true,"schema":{"type":"string","format":"cascading","explode":false,"items":{"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]}},"example":"integrated,simcon:vp"},"description":"Multiple comma-separated lists of values separated by a `:` [more](https://docs.trank.no/beneficial_owner_configuration_guide/#cascading)\n\nThe following models are supported:\n\n[`integrated`](https://docs.trank.no/beneficial_owner_configuration_guide/#integrated): Natural persons with an integrated ownership above threshold are beneficial owners.\n\n[`simcon`](https://docs.trank.no/beneficial_owner_configuration_guide/#simcon): Natural persons who own more than a threshold percent on all levels between the natural person and the requested company are beneficial owners.\n\n[`vp`](https://docs.trank.no/beneficial_owner_configuration_guide/#vp): `VP` Natural persons with voting power of at least threshold percent are beneficial owners. The default threshold of 49.8% will work well for most users.\n\n[`control`](https://docs.trank.no/beneficial_owner_configuration_guide/#control): `VP` Natural persons who control at least threshold % of the voting rights are beneficial owners.\n\n[`control+ownership`](https://docs.trank.no/beneficial_owner_configuration_guide/#control+ownership): `VP` If the sum of shares/voting rights a person controls, either directly or through companies he/she controls (through a chain of majority stakes) is above the threshold, he/she will become a BO. This model will enable model `control`.\n\n[`ownership+control`](https://docs.trank.no/beneficial_owner_configuration_guide/#ownership+control): `VP` If a person owns sufficient of a company to become a beneficial owner according to active integrated ownership model, and that company controls the entity we are looking at, the person will become a beneficial owner. This model will enable model `control`.\n\nIf more than one model is specified, a person is reported as beneficial owner if he satisfies the criteria of at least one of the listed models.\n\n"},{"in":"query","name":"threshold_integrated","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Integrated ownership threshold, used for `model=integrated`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_simcon","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold used for `model=simcon`. Available thresholds: `'10'`, `'25'`, `'>50'`. If a non-supported threshold is specified, it will be equivalent to calling with the lowest available threshold greater than the one specified.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_control_capital","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold for the share of ownership a person must control for `model=control+ownership`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_control","required":false,"schema":{"default":99.9,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":50,"maximum":100},"description":"Threshold for De Facto Control for `model=control`, `model=control+ownership` or `model=ownership+control`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_vp","required":false,"schema":{"default":49.8,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Voting Power threshold for `model=vp`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"include_legal","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to also return legal persons satisfying the selected models."},{"in":"query","name":"include_na","required":false,"schema":{"default":true,"type":"boolean"},"description":"Toggles whether _NA_ ownership links (links where the value is unknown), where the requested company is the owned entity, is treated as 0% (`false`) or as the maximum available ownership after summing other non-NA ownership links (`true`). Only applicable for models `control`, `control+ownership` and `ownership+control`."},{"in":"query","name":"include_intermediaries","required":false,"schema":{"default":false,"type":"boolean"},"description":"If true, each beneficial owner object in the response will include the - 'intermediary_shareholders'."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.beneficial-response"}}}}},"tags":["v2"],"summary":"Beneficial owners","description":"Retrieve a list of Beneficial Owners for a given company. The definition of Beneficial Owner is specified in the request.  \nT-rank's recommended approach for defining Beneficial Owners is to combine the Integrated Ownership model `integrated`, with a threshold of `>25%`, and the Voting Power model `vp`, using the default threshold of `49.8%`. The Integrated Ownership model identifies people with significant cash flow rights, while the Voting Power model identifies people with significant influence.  \nIn Norway and Sweden, it could be argued that the current AML legislation requires obliged entities to include every person whose ownership of shares or voting rights exceeds `25%` at every step in the ownership chain. To support this definition, add the Ownership at All Levels model `simcon` with a threshold of `>25%`.  \nWhen the EU Anti-Money Laundering Regulation (AMLR) enters into force on 10 July 2027, countries within the EU, and possibly also within the EEA, must follow a new set of rules for determining beneficial ownership. A strict minimum implementation of the AMLR should include the models Integrated Ownership `integrated`, Integrated Voting Rights `integrated-vr`, Control `control`, Control of Ownership `control+ownership` and Ownership in Mother `ownership+control`. Ownership thresholds (`threshold_integrated`, `threshold_integrated_vr`, `threshold_control_capital`, `threshold_control_vr`) should generally be lowered from `>25%` to `25%`, that is, from strictly above the threshold to at or above it. Note also that the AMLR allows these thresholds to be lower for high-risk customers. In T-rank's opinion, the Voting Power model `vp` should be added to the minimum models above in order to identify people with limited ownership but significant influence.","security":[{"ApiKey":["beneficial"]}]}},"/api/v2/owners/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"threshold_integrated","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100,"example":">25.0"},"description":"Integrated ownership threshold (percent). Only owners with an integrated ownership of at least the threshold in the requested entity are returned. Direct links of unknown size (n.a. in direct or total ownership) are only included if `threshold_integrated` is `0`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_power","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":49.8},"description":"Voting power threshold (percent). Only owners with voting power of at least the threshold in the requested entity are returned. Use of this parameter requires an API Key with voting power access.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_simcon","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":25.0},"description":"Simcon (ownership at all levels) threshold (percent). Available thresholds: `'10'`, `'25'`, `'>50'`. If a non-supported threshold is specified, it will be equivalent to calling with the lowest available threshold greater than the one specified.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1},"description":"The page in the result set to return. The pages are 1-indexed."},{"in":"query","name":"page_size","required":false,"schema":{"default":20,"type":"integer","minimum":0},"description":"Number of entities to be returned per page. If set to `0`, there is no limit and all entities satisfying the filters will be returned."},{"in":"query","name":"sort_by","required":false,"schema":{"default":"level","type":"string","enum":["name","level","level1_integrated","integrated","voting_power"]},"description":"How the entities are ordered: `level` by distance, nearest first, then by integrated ownership; `level1_integrated` direct links first, then all others, each by integrated ownership; `integrated` and `voting_power` by that percentage, then by distance; `name` alphabetically. Percentages sort highest first, and an entity lacking one is sorted by the other."},{"in":"query","name":"max_level","required":false,"schema":{"type":"integer","minimum":1},"description":"Maximum distance, in number of hops, from the requested entity to an owner."},{"in":"query","name":"filter","required":false,"schema":{"type":"string","enum":["person","legal"]},"description":"Only return owners of one kind: `person` for natural persons and unidentified shareholders, who may be natural or legal persons, or `legal` for legal persons, branches included, and aggregate shareholders."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.owners-response"}}}}},"tags":["v2"],"summary":"Owners","description":"Fetch the owners of a legal person\n\n_Note_: At least one of `threshold_integrated`, `threshold_power` or `threshold_simcon` must be set in order to get any results at all. If more than one are present, the thresholds are combined with logical OR.","security":[{"ApiKey":["owners"]}]}},"/api/v2/subsidiaries/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"threshold_integrated","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100,"example":">25.0"},"description":"Integrated ownership threshold (percent). Only entities in which the requested entity has an integrated ownership of at least the threshold are returned. Direct links of unknown size (n.a. in direct or total ownership) are only included if `threshold_integrated` is `0`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_power","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":49.8},"description":"Voting power threshold (percent). Only entities in which the requested entity has voting power of at least the threshold are returned. Use of this parameter requires an API Key with voting power access.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_simcon","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":25.0},"description":"Simcon (ownership at all levels) threshold (percent). Available thresholds: `'10'`, `'25'`, `'>50'`. If a non-supported threshold is specified, it will be equivalent to calling with the lowest available threshold greater than the one specified.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1},"description":"The page in the result set to return. The pages are 1-indexed."},{"in":"query","name":"page_size","required":false,"schema":{"default":20,"type":"integer","minimum":0},"description":"Number of entities to be returned per page. If set to `0`, there is no limit and all entities satisfying the filters will be returned."},{"in":"query","name":"sort_by","required":false,"schema":{"default":"level","type":"string","enum":["name","level","level1_integrated","integrated","voting_power"]},"description":"How the entities are ordered: `level` by distance, nearest first, then by integrated ownership; `level1_integrated` direct links first, then all others, each by integrated ownership; `integrated` and `voting_power` by that percentage, then by distance; `name` alphabetically. Percentages sort highest first, and an entity lacking one is sorted by the other."},{"in":"query","name":"max_level","required":false,"schema":{"type":"integer","minimum":1},"description":"Maximum distance, in number of hops, from the requested entity to an entity it owns."},{"in":"query","name":"exclude_branch","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to exclude branches from the result set or not."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.subsidiaries-response"}}}}},"tags":["v2"],"summary":"Subsidiaries and other holdings","description":"Fetch what an entity owns, directly or indirectly: every holding that passes a threshold, not only majority-owned subsidiaries.\n\n_Note_: At least one of `threshold_integrated`, `threshold_power` or `threshold_simcon` must be set in order to get any results at all. If more than one are present, the thresholds are combined with logical OR.","security":[{"ApiKey":["subsidiaries"]}]}},"/api/v2/ownership_indicators/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.ownership-indicators-response"}}}}},"tags":["v2"],"summary":"Ownership indicators","description":"Retrieve a set of indicators, relevant for risk assessment and similar tasks.","security":[{"ApiKey":["ownership-indicators"]}]}},"/api/graph/{id}/expand/{expand-id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"path","name":"expand-id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"dir","required":false,"schema":{"type":"string","enum":["owners","holdings","both"]},"description":"Export types:\n\n * `owners`: Get direct and indirect owners of the entity\n\n * `holdings`: Get direct and indirect holdings of the entity\n\n * `both`: Get both owners and holdings.\n\nThe old values `owner`, `owns` and `dual` are still accepted for `owners`, `holdings` and `both`."},{"in":"query","name":"max","required":false,"schema":{"default":1000,"type":"integer","minimum":1},"description":"Maximum number of owners or holdings to include."},{"in":"query","name":"exclude-branch","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether branches of companies should be excluded from the returned graph. Only relevant for graphs of type `holdings` and `both`."},{"in":"query","name":"extra-link-types","required":false,"schema":{"default":[],"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["all","ADV","FME"]},"example":"ADV,FME,all"},"description":"A comma-separated list of extra-link types to include in the graph. If `all` is in the list, all types will be included."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.graph.graph-expand-response"}}}}},"tags":["v1"],"summary":"Expand graph","description":"Expand graph with additional data","security":[{"ApiKey":[]}]}},"/api/graph/{id}/paths/{upstream-id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"path","name":"upstream-id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"threshold","required":false,"schema":{"default":0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Entities with integrated ownership above this threshold will normally be included in the map. Some times, entities with ownership below the threshold will be included in the returned graph in order to explain the ownership of another entity which is above the threshold (may happen if an entity has ownership in the requested entity through several paths and/or there are ownership circles).\n\nIf the threshold is set to `0`, ownership links not translated to a numeric value will also be included, but only on the first level.\n\n\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"power-threshold","required":false,"schema":{"default":5,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":1,"maximum":100},"description":"If set, entities with Voting Power above this threshold will normally be included in the map, even if integrated ownership is below `threshold`. This parameter is always on if the user has access to Voting Power.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"max","required":false,"schema":{"default":1000,"type":"integer","minimum":1},"description":"Maximum number of owners or holdings to include."},{"in":"query","name":"exclude-branch","required":false,"schema":{"default":false,"type":"boolean"},"description":"Turn on/off whether branches of companies should be excluded from the returned graph."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"nodes":{"description":"Each object represents a vertex.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.node"},{"type":"object","properties":{"owner":{"description":"This entity as an owner of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"holding":{"description":"This entity as a holding of the requested entity.","type":"object","properties":{"integrated":{"description":"Calculated integrated percentage. `NaN` when an ownership link is known, but not its share.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"star":{"description":"Calculated integrated ownership involves total ownership links.","type":"boolean"},"voting_power":{"description":"(In)direct voting power in percent.","type":"number","maximum":100,"exclusiveMinimum":0},"level":{"description":"Distance in hops from the requested entity according to strongest path algorithm.","type":"integer","minimum":0},"suspect":{"description":"`true` if voting power is (partly) based on suspicion of voting power.","type":"boolean"}}},"total_owner":{"description":"Deprecated, use `owner.integrated`. Integrated ownership this entity has in the requested company.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"total_owns":{"description":"Deprecated, use `holding.integrated`. Integrated ownership requested company has in this entity.","anyOf":[{"type":"number","maximum":100,"exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}],"deprecated":true},"level":{"description":"Deprecated, use `owner.level` and `holding.level`. Distance in hops from root node according to strongest path algorithm, as an owner when the entity is both.","type":"integer","minimum":0,"deprecated":true},"star":{"description":"Deprecated, use `owner.star` and `holding.star`. `true` if the `total_owner` calculation, or `total_owns` for an entity that is no owner, is (partly) based on total ownership links.","type":"boolean","deprecated":true},"power_owner":{"description":"Deprecated, use `owner.voting_power`. Voting power this entity has in requested company.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"power_owns":{"description":"Deprecated, use `holding.voting_power`. Voting power requested company has in this entity.","type":"number","maximum":100,"exclusiveMinimum":0,"deprecated":true},"suspect":{"description":"Deprecated, use `owner.suspect` and `holding.suspect`. `true` if `power_owner`, or `power_owns` for an entity that is no owner, is (partly) based on suspicion of voting power.","type":"boolean","deprecated":true}}}]}},"edges":{"description":"Each object represent an edge.","type":"array","items":{"type":"object","properties":{"source":{"description":"The ID of the origin node","$ref":"#/components/schemas/kraken.node-id"},"target":{"description":"The ID of the target node","$ref":"#/components/schemas/kraken.node-id"},"direct_weight":{"description":"Direct ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"direct_text":{"description":"Text representation of direct ownership link.","title":"Non-empty String","type":"string","minLength":1},"total_weight":{"description":"Total ownership, in percent, this link represents.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"total_text":{"description":"Text representation of total ownership link.","title":"Non-empty String","type":"string","minLength":1},"voting_rights":{"description":"Direct voting-rights, in percent, this link represents.","type":"number","minimum":0,"maximum":100},"power_direct":{"description":"Deprecated, no longer returned.","type":"number","maximum":1,"exclusiveMinimum":0,"deprecated":true},"provider":{"title":"Non-empty String","type":"string","minLength":1},"info_date":{"title":"Date","type":"string","format":"date"}},"required":["source","target"]}}},"required":["nodes","edges"]},"dump_date":{"title":"Date-time","type":"string","format":"date-time"},"max":{"type":"integer","minimum":1},"exclude_branch":{"type":"boolean"},"id":{"$ref":"#/components/schemas/kraken.node-id"},"upstream_id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["data","dump_date","max","exclude_branch","id","upstream_id"]}}}}},"tags":["v1"],"summary":"Paths graph","description":"Get a graph containing all paths leading from `id2` to `id1`. The graph will contain all ownership paths leading from `id2` (the owner) to `id1` (the owned company). In addition, any roles `id2` have in any of the included companies will be included, and if `id2` has roles, but not ownership, in companies with ownership in `id1`, these will also be included.","security":[{"ApiKey":[]}]}},"/api/graph/{id}/export":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"dir","required":false,"schema":{"type":"string","enum":["owners","holdings"]},"description":"Export types:\n\n * `owners`: Get direct and indirect owners of the entity\n\n * `holdings`: Get direct and indirect holdings of the entity\n\nThe old values `owner`, `owns` and `dual` are still accepted for `owners`, `holdings` and `both`."},{"in":"query","name":"threshold","required":false,"schema":{"default":5,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Integrated ownership threshold.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"max","required":false,"schema":{"default":100,"type":"integer","minimum":1},"description":"Maximum number of owners or holdings to include."},{"in":"query","name":"exclude-branch","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether branches of companies should be excluded. Only relevant for export of type `holdings`."},{"in":"query","name":"token","required":false,"schema":{"title":"Non-empty String","type":"string","minLength":1},"description":"The session token."}],"responses":{"200":{"content":{"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"schema":{}}}}},"tags":["v1"],"summary":"Export graph as MS Excel spreadsheet (xlsx)","description":"This endpoint return an MS Excel spreadsheet (xlsx) with ownership data. Since it is usually executed by providing the user with a link, the session token can be submitted as a get parameter rather than the usual HTTP header.","security":[{"ApiKey":[]}]}},"/api/graph/{id}/beneficial":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"model","required":true,"schema":{"type":"string","format":"cascading","explode":false,"items":{"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["control","control+ownership","integrated","ownership+control","simcon","vp"]}},"example":"integrated,simcon:vp"},"description":"Multiple comma-separated lists of values separated by a `:` [more](https://docs.trank.no/beneficial_owner_configuration_guide/#cascading)\n\nThe following models are supported:\n\n[`integrated`](https://docs.trank.no/beneficial_owner_configuration_guide/#integrated): Natural persons with an integrated ownership above threshold are beneficial owners.\n\n[`simcon`](https://docs.trank.no/beneficial_owner_configuration_guide/#simcon): Natural persons who own more than a threshold percent on all levels between the natural person and the requested company are beneficial owners.\n\n[`vp`](https://docs.trank.no/beneficial_owner_configuration_guide/#vp): `VP` Natural persons with voting power of at least threshold percent are beneficial owners. The default threshold of 49.8% will work well for most users.\n\n[`control`](https://docs.trank.no/beneficial_owner_configuration_guide/#control): `VP` Natural persons who control at least threshold % of the voting rights are beneficial owners.\n\n[`control+ownership`](https://docs.trank.no/beneficial_owner_configuration_guide/#control+ownership): `VP` If the sum of shares/voting rights a person controls, either directly or through companies he/she controls (through a chain of majority stakes) is above the threshold, he/she will become a BO. This model will enable model `control`.\n\n[`ownership+control`](https://docs.trank.no/beneficial_owner_configuration_guide/#ownership+control): `VP` If a person owns sufficient of a company to become a beneficial owner according to active integrated ownership model, and that company controls the entity we are looking at, the person will become a beneficial owner. This model will enable model `control`.\n\nIf more than one model is specified, a person is reported as beneficial owner if he satisfies the criteria of at least one of the listed models.\n\n"},{"in":"query","name":"threshold_integrated","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Integrated ownership threshold, used for `model=integrated`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_simcon","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold used for `model=simcon`. Available thresholds: `'10'`, `'25'`, `'>50'`. If a non-supported threshold is specified, it will be equivalent to calling with the lowest available threshold greater than the one specified.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_control_capital","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold for the share of ownership a person must control for `model=control+ownership`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_control","required":false,"schema":{"default":99.9,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":50,"maximum":100},"description":"Threshold for De Facto Control for `model=control`, `model=control+ownership` or `model=ownership+control`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_vp","required":false,"schema":{"default":49.8,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Voting Power threshold for `model=vp`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"include_legal","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to also return legal persons satisfying the selected models."},{"in":"query","name":"include_na","required":false,"schema":{"default":true,"type":"boolean"},"description":"Toggles whether _NA_ ownership links (links where the value is unknown), where the requested company is the owned entity, is treated as 0% (`false`) or as the maximum available ownership after summing other non-NA ownership links (`true`). Only applicable for models `control`, `control+ownership` and `ownership+control`."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.graph.beneficial-graph-response"}}}}},"tags":["v1"],"summary":"BO Graph","description":"Endpoint that returns a beneficial-owners graph, put the graph data into the `data` property of the response object.","security":[{"ApiKey":[]}]}},"/api/graph/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"dir","required":false,"schema":{"type":"string","enum":["owners","group","holdings","both"]},"description":"Graph types:\n\n * `owners`: Get direct and indirect owners of the entity\n\n * `holdings`: Get direct and indirect holdings of the entity\n\n * `both`: Get both owners and holdings.\n\n * `group`: Get the corporate group\n\nThe old values `owner`, `owns` and `dual` are still accepted for `owners`, `holdings` and `both`."},{"in":"query","name":"threshold","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Entities with integrated ownership above this threshold will normally be included in the map. Some times, entities with ownership below the threshold will be included in the returned graph in order to explain the ownership of another entity which is above the threshold (may happen if an entity has ownership in the requested entity through several paths and/or there are ownership circles).\n\nIf the threshold is set to `0`, ownership links not translated to a numeric value will also be included, but only on the first level.\n\nIf `dir=group`, the meaning of the threshold parameters changes to a Voting Power threshold for control and defaults to `99.8%` and a minimum of `90.0%`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"max","required":false,"schema":{"default":50,"type":"integer","minimum":1},"description":"Maximum number of nodes (requested entity excluded). If set to 0, the server will try to figure out a reasonable number of nodes to return. The algorithm for picking nodes to return is a bit different when setting it to 0 than when giving an actual value, and 0 will most often give the best result from a user’s perspective."},{"in":"query","name":"exclude-branch","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether branches of companies should be excluded from the returned graph. Only relevant for graphs of type `holdings` or `both`."},{"in":"query","name":"power-threshold","required":false,"schema":{"default":49.8,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":1,"maximum":100},"description":"If set, entities with Voting Power above this threshold will normally be included in the map, even if integrated ownership is below `threshold`. This parameter is always on if the user has access to Voting Power.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"associated-threshold","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":1,"maximum":50},"description":"Only applicable for `dir=group`. If set, companies associated to the corporate group will be included. An associated company is a company which either owns `(associated-threshold, 50]%` of a company in the corporate group, or, in sum, is owned by `(associated-threshold, 50]%` by the companies in the corporate group.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"extra-link-types","required":false,"schema":{"default":[],"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["all","ADV","FME"]},"example":"ADV,FME,all"},"description":"A comma-separated list of extra-link types to include in the graph. If `all` is in the list, all types will be included."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.graph.graph-response"}}}}},"tags":["v1"],"summary":"Graph","description":"Fetch an ownership graph of some type.","security":[{"ApiKey":[]}]}},"/api/owner/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"threshold_integrated","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100,"example":">25.0"},"description":"Integrated ownership threshold (percent). Only owners with an integrated ownership of at least the threshold in the requested entity are returned. Direct links of unknown size (n.a. in direct or total ownership) are only included if `threshold_integrated` is `0`.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_power","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":49.8},"description":"Voting power threshold (percent). Only owners with voting power of at least the threshold in the requested entity are returned. Use of this parameter requires an API Key with voting power access.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"threshold_simcon","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0,"example":25.0},"description":"Simcon (ownership at all levels) threshold (percent). Available thresholds: `'10'`, `'25'`, `'>50'`. If a non-supported threshold is specified, it will be equivalent to calling with the lowest available threshold greater than the one specified.\n\nFloat, possibly prefixed with `>`. Lower threshold. Interpreted as greater than or equal to unless prefixed with `>`."},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1},"description":"The page in the result set to return. The pages are 1-indexed."},{"in":"query","name":"page_size","required":false,"schema":{"default":20,"type":"integer","minimum":0},"description":"Number of entities to be returned per page. If set to `0`, there is no limit and all entities satisfying the filters will be returned."},{"in":"query","name":"sort_by","required":false,"schema":{"default":"level","type":"string","enum":["name","level","level1_integrated","integrated","voting_power"]},"description":"How the entities are ordered: `level` by distance, nearest first, then by integrated ownership; `level1_integrated` direct links first, then all others, each by integrated ownership; `integrated` and `voting_power` by that percentage, then by distance; `name` alphabetically. Percentages sort highest first, and an entity lacking one is sorted by the other."},{"in":"query","name":"max_level","required":false,"schema":{"type":"integer","minimum":1},"description":"Maximum distance, in number of hops, from the requested entity to an owner."},{"in":"query","name":"filter","required":false,"schema":{"type":"string","enum":["person","legal"]},"description":"Only return owners of one kind: `person` for natural persons and unidentified shareholders, who may be natural or legal persons, or `legal` for legal persons, branches included, and aggregate shareholders."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.owners-response"}}}}},"tags":["v1"],"summary":"Owners","description":"Fetch the owners of a legal person\n\n_Note_: At least one of `threshold_integrated`, `threshold_power` or `threshold_simcon` must be set in order to get any results at all. If more than one are present, the thresholds are combined with logical OR.","security":[{"ApiKey":[]}]}},"/api/indicators/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.ownership-indicators-response"}}}}},"tags":["v1"],"summary":"Ownership indicators","description":"Retrieve a set of indicators, relevant for risk assessment and similar tasks.","security":[{"ApiKey":[]}]}},"/api/node/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.full-node"}}}}},"tags":["v1"],"summary":"Node by ID","security":[{"ApiKey":[]}]}},"/api/v2/monitor":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"profile":{"description":"The monitoring profile, which T-rank sets up for the client. A profile names the endpoint to monitor, such as Beneficial owners, and the request parameters to call it with, for example the models and thresholds that define beneficial ownership (see the [Beneficial Owner Configuration Guide](https://docs.trank.no/beneficial_owner_configuration_guide/)).","title":"Non-empty String","type":"string","minLength":1},"ids":{"description":"IDs of the entities to monitor.","type":"array","items":{"$ref":"#/components/schemas/kraken.node-id"},"uniqueItems":true,"minItems":1,"maxItems":50000}},"required":["profile","ids"]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"ids_count":{"type":"integer","minimum":1}},"required":["profile","ids_count"]},"rejected":{"description":"The IDs that are not monitored, each with the reason: `not-found` when the ID is not in the data set, `wrong-type` when the entity is not a legal person, `forbidden` when access to the entity is denied, and `duplicate` when the entity is already monitored under the profile. `status_code` is the HTTP status code that goes with the reason.","type":"object","additionalProperties":{"type":"object","properties":{"reason":{"type":"string","enum":["not-found","wrong-type","forbidden","duplicate"]},"status_code":{"type":"integer","enum":[404,400,403,409]}},"required":["reason","status_code"]}}},"required":["request","rejected"]}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"ids_count":{"type":"integer","minimum":1}},"required":["profile","ids_count"]},"message":{"title":"Non-empty String","type":"string","minLength":1}},"required":["request","message"]}}}},"403":{"content":{"application/json":{"schema":{}}}}},"tags":["v2"],"summary":"Monitor entities","description":"Start monitoring a batch of entities under a monitoring profile. T-rank checks every monitored entity regularly, by calling the profile's endpoint, and delivers the results that have changed since the previous check.  \nOnly legal persons can be monitored. The IDs that can't be monitored are listed in `rejected`, and the rest are monitored.  \nUnlike monitoring a single entity, this returns no results, so the first check reports the whole result for each entity as changed. An unknown profile gives `404`.","security":[{"ApiKey":[]}]}},"/api/v2/monitor/{id}":{"put":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"profile","required":false,"schema":{"default":"_default","title":"Non-empty String","type":"string","minLength":1},"description":"The monitoring profile, which T-rank sets up for the client. A profile names the endpoint to monitor, such as Beneficial owners, and the request parameters to call it with, for example the models and thresholds that define beneficial ownership (see the [Beneficial Owner Configuration Guide](https://docs.trank.no/beneficial_owner_configuration_guide/))."}],"responses":{"200":{"description":"The entity is monitored. `request.id` is its primary ID, also when it was requested by an alternative ID.","content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["profile","id"]},"data":{"description":"The profile's current result for the entity, under the name of the profile's endpoint.","type":"object","properties":{"v2/beneficial":{"description":"The result of Beneficial owners, in the form that endpoint returns it.","$ref":"#/components/schemas/kraken.api.v2.beneficial-response"}}}},"required":["request","data"]}}}},"404":{"description":"The entity is not in the data set (`not_found`), or the profile is not found (`message`).","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["profile","id"]},"message":{"title":"Non-empty String","type":"string","minLength":1}},"required":["request","message"]},{"type":"object","properties":{"not_found":{"type":"array","items":{"type":"array","prefixItems":[{"type":"string"},{"type":"string"}],"items":false}}},"required":["not_found"]}]}}}},"409":{"description":"The entity is already monitored under the profile.","content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["profile","id"]},"message":{"title":"Non-empty String","type":"string","minLength":1}},"required":["request","message"]}}}}},"tags":["v2"],"summary":"Monitor an entity","description":"Start monitoring an entity under a monitoring profile, and get the profile's current result for it. T-rank checks every monitored entity regularly, by calling the profile's endpoint, and delivers the results that have changed since the previous check.","security":[{"ApiKey":[]}]},"delete":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"profile","required":false,"schema":{"default":"_default","title":"Non-empty String","type":"string","minLength":1},"description":"The monitoring profile, which T-rank sets up for the client. A profile names the endpoint to monitor, such as Beneficial owners, and the request parameters to call it with, for example the models and thresholds that define beneficial ownership (see the [Beneficial Owner Configuration Guide](https://docs.trank.no/beneficial_owner_configuration_guide/))."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["profile","id"]},"message":{"title":"Non-empty String","type":"string","minLength":1}},"required":["request","message"]}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"type":"object","properties":{"profile":{"title":"Non-empty String","type":"string","minLength":1},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["profile","id"]},"message":{"title":"Non-empty String","type":"string","minLength":1}},"required":["request","message"]}}}}},"tags":["v2"],"summary":"Stop monitoring an entity","description":"Stop monitoring an entity under a monitoring profile. The ID it was monitored under works also after the entity has left the data set or changed ID.  \nAn entity that is not monitored under the profile gives `404`.","security":[{"ApiKey":[]}]}},"/owner/beneficial/{lookup-id}":{"get":{"parameters":[{"in":"path","name":"lookup-id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"threshold-owner","required":false,"schema":{"default":25.0,"$ref":"#/components/schemas/kraken.threshold","minimum":0.0,"maximum":100.0}},{"in":"query","name":"threshold-control","required":false,"schema":{"default":99.9,"$ref":"#/components/schemas/kraken.threshold","minimum":0.0,"maximum":100.0}},{"in":"query","name":"include-indirect-owners","required":false,"schema":{"default":true,"type":"boolean"}},{"in":"query","name":"flag","required":false,"schema":{"type":"boolean"}}],"tags":["orbis"],"security":[{"ApiKey":[]}]}},"/owner/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1}},{"in":"query","name":"threshold","required":false,"schema":{"default":5.0,"$ref":"#/components/schemas/kraken.threshold","minimum":0.0,"maximum":100.0}},{"in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"in":"query","name":"sort-by","required":false,"schema":{"type":"string"}},{"in":"query","name":"flag","required":false,"schema":{"type":"boolean"}}],"tags":["orbis"],"security":[{"ApiKey":[]}]}}}}