{"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"},"exclude_estate":{"type":"boolean"}},"required":["total","pages","sort_by","exclude_branch","exclude_estate"]},"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 `Fun`, `Pub`, `Fou`, `Ass`, `Tru`. 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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}},"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":{"boreg_status":{"description":"Only present if `model=bo-register` is on and access to the Norwegian BO register has been configured for the client.","type":"string","enum":["OK","404","missing","unknown"]},"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},"integrated_vr":{"description":"Integrated voting-rights this entity has in the requested company.","type":"number","maximum":100,"exclusiveMinimum":0},"integrated_vr_star":{"description":"`true` if the `integrated_vr` calculation is (partly) based on total ownership links.","type":"boolean"},"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},"bo_register":{"description":"Each object is a registered reason for this person being a BO. Only present if the BO register model is on (`increg=true`).","type":"array","items":{"$ref":"#/components/schemas/kraken.bo.register"}}},"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":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"models_w_family":{"description":"If `incfamily=true`, listing models this person satisfies together with close family but not alone.","type":"array","items":{"type":"string","enum":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"family":{"description":"Listing persons this beneficial owner is in close family with which also have ownership in the subject entity.","type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/kraken.node-id"},"role_to_me":{"type":"string","enum":["partner","parent","child"]}},"required":["id","role_to_me"]}},"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":{}}},"ge50c_gt25_owner":{"description":"`50` if the BO controls the entity, `25` if he don’t but owns more than `25%` of the share capital or the voting rights (possibly through one or more controlled companies)","type":"number","maximum":100,"exclusiveMinimum":0},"ge50c_gt25_controlled_ownership":{"description":"The sum of direct ownership held in the subject company for the beneficial owner and all companies controlled by the beneficial owner according to the `≥ 50%` rule. The value takes circular ownership into account.","type":"number","maximum":100,"exclusiveMinimum":0},"ge50c_gt25_controlled_voting_rights":{"description":"The sum of direct voting rights held in the subject company for the beneficial owner and all companies controlled by the beneficial owner according to the `≥ 50%` rule. The value takes self-owner voting rights in the subject company into account","type":"number","maximum":100,"exclusiveMinimum":0},"bo_register":{"description":"Each object is a registered reason for this person being a BO. Only present if the BO register model is on (`increg=true`).","type":"array","items":{"$ref":"#/components/schemas/kraken.bo.register"}},"comb-register":{"description":"`true` if the person is BO according to a BO registry in a legal person owner of the company, and the legal person owner satisfies any of the BO criteria. Only present if both `increg=true` and `combinereg=true`.","type":"boolean"}}}]}},"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":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_integrated_vr":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_simcon":{"type":"number","minimum":0,"maximum":100},"threshold_control_capital":{"type":"number","minimum":0,"maximum":100},"threshold_control_vr":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_control":{"type":"number","minimum":50,"maximum":100},"threshold_vp":{"type":"number","minimum":0,"maximum":100},"include_legal":{"type":"boolean"},"include_family":{"type":"boolean"},"include_roles":{"type":"boolean"},"include_unidentified":{"type":"boolean"},"include_combine_reg":{"type":"boolean"},"bo_roles":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"required":["models","threshold_integrated","threshold_integrated_vr","threshold_simcon","threshold_control","threshold_vp","include_legal","include_family","include_roles","include_unidentified","include_combine_reg"]}},"required":["data","meta","request"]},"kraken.api.v2.roles-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":{"include_ownership":{"type":"boolean"}},"required":["include_ownership"]},"subject":{"$ref":"#/components/schemas/kraken.full-node"},"company_roles":{"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}}},{"type":"object","properties":{"roles":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Standardized name (abbreviation) for the role.","type":"string"},"description":{"description":"Standardized description for the role.","type":"string"},"source_role":{"description":"Name or abbreviation as submitted from source.","type":"string"},"source_description":{"description":"Description of the role as received from source.","type":"string"},"elected_by":{"description":"Information like \"employee representative\".","type":"string"},"partner_share":{"description":"Used for Norwegian partnerships only. Share of responsibility / capital.","type":"string"},"date":{"description":"Update date.","title":"Date","type":"string","format":"date"},"guardian":{"description":"(Norway). A star if the contact has a guardian.","type":"string"}},"required":["name","description"]}}},"required":["roles"]}]}}},"required":["meta","request","subject","company_roles"]},"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 `Fun`, `Pub`, `Fou`, `Ass`, `Tru`. 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.","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":"Number of unidentified shareholders. Unidentified shareholders are shareholders for which only their name is known, and could be natural persons or legal persons.","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},"num_shareholders_shareclasses":{"description":"Number of significant shareholders (shareholders with an integrated ownership of at least 10%) that have at least 2 share classes.","type":"integer","minimum":0},"ownership_nace":{"description":"A table (object), having Nace Rev2 level 4 codes for direct and indirect legal person owners as properties. Only present when the requested entity is a legal person or an aggregate.","type":"object","additionalProperties":{"type":"object","properties":{"title":{"description":"the description associated with the NACE code. Since a mother company and a grandmother company might have the same Nace code, the sum of integrated ownership for a nace code could be above 100. If a normalized value is preferred, divide the value by the `num_shareholders_legal`} property.","type":"string"},"sum":{"description":"the sum of integrated ownership for these owners","type":"number"}},"required":["title","sum"]},"example":{"64.99":{"title":"Nace 64.99","sum":85.0},"62.01":{"title":"Nace 62.01","sum":84.86},"70.10":{"title":"Nace 70.10","sum":300.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":"T-rank's abbreviation for the type of entity, such as `Com` for a company, `Fou` for a foundation, `Tru` for a trust, `Est` for real estate or `Pub` for the public sector.","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.api.v2.roles-of-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":{"include_ownership":{"type":"boolean"}},"required":["include_ownership"]},"subject":{"$ref":"#/components/schemas/kraken.full-node"},"roles":{"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}}},{"type":"object","properties":{"roles":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Standardized name (abbreviation) for the role.","type":"string"},"description":{"description":"Standardized description for the role.","type":"string"},"source_role":{"description":"Name or abbreviation as submitted from source.","type":"string"},"source_description":{"description":"Description of the role as received from source.","type":"string"},"elected_by":{"description":"Information like \"employee representative\".","type":"string"},"partner_share":{"description":"Used for Norwegian partnerships only. Share of responsibility / capital.","type":"string"},"date":{"description":"Update date.","title":"Date","type":"string","format":"date"},"guardian":{"description":"(Norway). A star if the contact has a guardian.","type":"string"}},"required":["name","description"]}}},"required":["roles"]}]}}},"required":["meta","request","subject","roles"]},"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":"T-rank's abbreviation for the type of entity, such as `Com` for a company, `Fou` for a foundation, `Tru` for a trust, `Est` for real estate or `Pub` for the public sector.","title":"Non-empty String","type":"string","minLength":1},"active":{"description":"`false` for dissolved entities.","type":"boolean"},"account_date":{"title":"Date","type":"string","format":"date"},"accounts_currency":{"type":"string"},"address_freetext":{"type":"string"},"advertisement_reservation":{"type":"boolean"},"birth_year":{"description":"Year of birth, natural persons only. Note that some natural persons originating in the Norwegian data have year of birth but not date of birth. These entities are considered unidentified.","type":"integer"},"citizenship":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"city":{"type":"string"},"classification":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"example":{"l4nace":[{"68.20":"Nace description"}]}},"contact":{"type":"string"},"control_code":{"type":"integer"},"country":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"county":{"type":"string"},"dept":{"type":"number"},"dept_cred_inst":{"type":"number"},"description":{"type":"string"},"dissolved":{"title":"Date","type":"string","format":"date"},"employees":{"type":"number"},"employees_registered":{"type":"string"},"equity":{"type":"number"},"estates":{"type":"string"},"f_date":{"description":"Date of birth, natural persons only","title":"Date","type":"string","format":"date"},"fiscal_end":{"type":"string"},"foreign_country":{"description":"Present for representatives of foreign companies only. Name of the country the main company is registered in.","type":"string"},"foreign_id":{"description":"Present for representatives of foreign companies only. National ID of the main company.","type":"string"},"foreign_name":{"description":"Present for representatives of foreign companies only. Name of the main company.mortgagees.","type":"string"},"gender":{"description":"`F` = Female, `M` = Male","type":"string","enum":["F","M"]},"group_dept":{"type":"number"},"group_dept_cred_inst":{"type":"number"},"group_equity":{"type":"number"},"group_net_profit":{"type":"number"},"group_op_profit":{"type":"number"},"group_revenue":{"type":"number"},"group_solidity":{"type":"number"},"incorp_date":{"title":"Date","type":"string","format":"date"},"last_sold":{"title":"Date","type":"string","format":"date"},"last_sold_for":{"type":"number"},"last_update":{"description":"Time of last update, delivered from information provider.","title":"Date-time","type":"string","format":"date-time"},"listing_status":{"description":"`0=Not listed`, `1=Listed`, `3=Daughter of listed company`","type":"integer","minimum":0},"man_years":{"type":"string"},"mortgagees":{"type":"string"},"municipality":{"type":"string"},"net_profit":{"type":"number"},"no_auditor":{"type":"boolean"},"op_profit":{"type":"integer"},"ownership_source":{"type":"string"},"phone":{"type":"string"},"place":{"type":"string"},"privileged_share_info":{"description":"Total number of shares and number of votes per share class.","type":"object","properties":{"total":{"type":"integer"},"votes":{"type":"integer"},"votes_relative":{"type":"object","additionalProperties":{"type":"number"}},"isin":{"description":"Securities registered with an ISIN (ISINs as properties, security names as values).","type":"object","additionalProperties":{"type":"string"}}},"examples":[{"total":1860,"votes_relative":{"AKT_A":1,"AKT_B":1}},{"total":1860,"votes":1860},{"total":2390749040,"isin":{"NO0010096985":"EQUINOR ASA"}}]},"privileged_ssns":{"description":"An object with type of ID number as properties (NO for Norwegian Social Security Number, SE for Swedish Social Security Number and DKCVR for the ID in the Danish CVR database) and the actual IDs as values. A person may have more than one ID, for instance a D-number for NO and Swedish Social Security Number for SE.","type":"object","additionalProperties":{"type":"string"},"example":{"NO":"12345678901"}},"procurator":{"type":"string"},"purpose":{"type":"string"},"revenue":{"type":"integer"},"share_capital":{"type":"number"},"share_capital_currency":{"type":"string"},"share_classes":{"description":"Number of share classes when known. For Sweden and Denmark, the value `NaN` is used for companies where voting rights differ from share.","anyOf":[{"type":"number","exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"share_classes_applied":{"description":"`true` if voting right rules for share classes have been applied for Voting Power calculation.","type":"boolean"},"share_classes_indirect":{"description":"`true` if one or more owners have more than one share class. For Sweden and Denmark, it is true when a direct og indirect owner has `share_classes=NaN`.","type":"boolean"},"signatory":{"type":"string"},"solidity":{"type":"number"},"source_type":{"type":"string"},"statute_date":{"title":"Date","type":"string","format":"date"},"street_addr":{"type":"string"},"sub_units":{"description":"Number of \"P-enheder\" (DK).","type":"integer"},"website":{"type":"string"},"woco":{"description":"`true` if the entity has a World Compliance flag.","type":"boolean"},"zip":{"type":"string"}},"required":["id","name","entity_type","active"]},"kraken.bo.register":{"type":"object","properties":{"reason_desc":{"description":"Standardized text or code for the reason","oneOf":[{"type":"string"},{"type":"null"}]},"reason":{"description":"Detailed description","oneOf":[{"type":"string"},{"type":"null"}]},"control_interval":{"description":"Code for how much of the shares is controlled by this BO","oneOf":[{"type":"string"},{"type":"null"}]},"control_interval_desc":{"description":"Textual description corresponding to `control_interval`","oneOf":[{"type":"string"},{"type":"null"}]}}},"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":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"threshold_integrated":{"type":"number","minimum":0,"maximum":100},"threshold_integrated_vr":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_simcon":{"type":"number","minimum":0,"maximum":100},"threshold_control_capital":{"type":"number","minimum":0,"maximum":100},"threshold_control_vr":{"type":"number","maximum":100,"exclusiveMinimum":0},"threshold_control":{"type":"number","minimum":50,"maximum":100},"threshold_vp":{"type":"number","minimum":0,"maximum":100},"include_legal":{"type":"boolean"},"include_family":{"type":"boolean"},"include_roles":{"type":"boolean"},"include_unidentified":{"type":"boolean"},"include_combine_reg":{"type":"boolean"},"include_intermediaries":{"type":"boolean"},"bo_roles":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"required":["models","threshold_integrated","threshold_integrated_vr","threshold_simcon","threshold_control","threshold_vp","include_legal","include_family","include_roles","include_unidentified","include_combine_reg","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 `Fun`, `Pub`, `Fou`, `Ass`, `Tru`.","type":"number","minimum":0,"maximum":100}},"required":["self_ownership","completeness"]},{"type":"object","properties":{"boreg_status":{"description":"Only present if `model=bo-register` is on and access to the Norwegian BO register has been configured for the client.","type":"string","enum":["OK","404","missing","unknown"]}}}]},"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}},"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). 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},"direct_adjusted":{"description":"Direct ownership percentage, adjusted for integrated ownership the subject company has in itself. Only present if direct ownership is present and `model=ge50c-gt25` is turned on.","type":"number","minimum":0,"maximum":100},"voting_rights_adjusted":{"description":"Voting rights the person holds in the subject company, adjusted for voting rights held (directly) by the subject company itself. Only present if direct ownership is present and `model=ge50c-gt25` is turned on.","type":"number","minimum":0,"maximum":100},"ge50c_gt25_controlled_ownership":{"description":"Only available if `model=ge50c-gt25` is on, and there exists an indirect ownership relationship between the Beneficial owner and the subject. The sum of direct ownership held in the subject company for the beneficial owner and all companies controlled by the beneficial owner according to the >= 50% rule. The value takes circular ownership into account.","type":"number","maximum":100,"exclusiveMinimum":0},"ge50c_gt25_controlled_voting_rights":{"description":"Only available if `model=ge50c-gt25` is on, and there exists an indirect ownership relationship between the Beneficial owner and the subject. The sum of direct voting rights held in the subject company for the beneficial owner and all companies controlled by the beneficial owner according to the >= 50% rule. The value takes self-owned voting rights in the subject company into account.","type":"number","maximum":100,"exclusiveMinimum":0},"intermediaries":{"description":"Only available if `model=ge50c-gt25` is on. A list of intermediary companies which satisfies i) the beneficial owner satisfies the `ge50c-gt25` model in the company and ii) the company have direct or indirect ownership in the requested company. Each object has the properties id, name, `entity_type` and `level`.","type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}},"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}},"required":["ownership"]}]}},"integrated_vr":{"description":"Only available if `model=integrated-vr` is on. Calculated integrated voting-rights percentage.","type":"number","maximum":100,"exclusiveMinimum":0},"integrated_vr_star":{"description":"Only available if `model=integrated-vr` is on. Calculated integrated voting-rights involves total ownership links.","type":"boolean"}}}}},{"type":"object","properties":{"models":{"description":"Models that are requested may be listed here.\n\nIn addition to the models requested, `role` may appear. `model=role` appears if the requested entity is of a self-owned entity type (foundation) where people having certain roles are defined to be beneficial owners, or if the requested entity is owned by a person of a self-owned entity type in such a way that this legal person would have been a beneficial owner if it had been a natural person.\n\nIf `include_combine_reg` is turned on (together with the model register), the additional models `<modelname>+register` may occur whenever a person is identified by applying the model `<modelname>` in combination with a national BO registry entry.\n\n","type":"array","items":{"type":"string","enum":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"unidentified":{"description":"`true` if this beneficial owner is an unidentified shareholder, meaning that it may or may not be a natural person. The only meta data available where `unidentified=true` is usually name.","type":"boolean"},"models_w_family":{"description":"Listing models this person satisfies together with close family but not alone.","type":"array","items":{"type":"string","enum":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true},"relevant_family":{"description":"Listing persons this beneficial owner is in close family with which also have ownership in the subject entity.","type":"array","items":{"$ref":"#/components/schemas/kraken.node-id"},"uniqueItems":true},"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}}}]}},"bo_selfowned_owner":{"description":"Legal persons of self-owned entity types (foundations), that would have been beneficial owners if they had been natural persons. The objects in the array have the same properties as other legal person objects, and in addition, bo roles, pointing to an array of role abbreviations – each making this beneficial owner a beneficial owner of the self-owned entity and thus also of the requested company.","type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}},"bo_reg":{"description":"Each object is a registered reason for this person being a BO. Only present if `model=bo-register` is on. The following fields may occur in each object","type":"array","items":{"$ref":"#/components/schemas/kraken.bo.register"}},"bo_roles":{"description":"A list of roles this beneficial owner has in the requested company, each making the person a beneficial owner. Only present is the requested company is of a self-owned entity type (foundation).","type":"array","items":{"type":"string"}}},"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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}}},{"type":"object","properties":{"models":{"type":"array","items":{"type":"string","enum":["alternative-bo","bo-register","control","control+ownership","control+ownership+register","control+ownership+role","control+register","control+role","ge50c-gt25","ge50c-gt25+register","ge50c-gt25+role","integrated","integrated+register","integrated+role","integrated-vr","integrated-vr+register","integrated-vr+role","ownership+control","ownership+control+register","ownership+control+role","role","simcon","simcon+register","simcon+role","vp","vp+register","vp+role"]},"uniqueItems":true}},"required":["models"]}]}},"company_roles":{"description":"Much like the `beneficial_owners`. The objects will have properties similar to a beneficial owner (if natural person) or a legal owner (if legal person), but will lack the ownership property and properties only relevant for beneficial ownership. In addition, the objects have a property listing the roles: `roles`. `roles` points to an array listing the roles the person has in the company. Refer to chapter `roles` for possible values.","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/kraken.full-node"},{"type":"object","properties":{"roles":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Standardized name (abbreviation) for the role.","type":"string"},"description":{"description":"Standardized description for the role.","type":"string"},"source_role":{"description":"Name or abbreviation as submitted from source.","type":"string"},"source_description":{"description":"Description of the role as received from source.","type":"string"},"elected_by":{"description":"Information like \"employee representative\".","type":"string"},"partner_share":{"description":"Used for Norwegian partnerships only. Share of responsibility / capital.","type":"string"},"date":{"description":"Update date.","title":"Date","type":"string","format":"date"},"guardian":{"description":"(Norway). A star if the contact has a guardian.","type":"string"}},"required":["name","description"]}}},"required":["roles"]}]}}},"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},"exclude_estate":{"type":"boolean"},"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"},"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","exclude_estate","id"]},"kraken.country-codes":{"title":"Comma-separated Country Codes","description":"ISO 3166 alpha-2 lowercase country codes, separated by comma","type":"string","pattern":"(?i)^[a-z][a-z](,[a-z][a-z])*$","example":"fi,se"},"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 `Fun`, `Pub`, `Fou`, `Ass`, `Tru`.","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` whenever the owner or the owned entity is inactive.","anyOf":[{"type":"number","minimum":0,"maximum":100},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]},"voting_rights":{"description":"Direct voting rights percentage. Could be `NaN` whenever the owner or the owned entity is inactive.","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},"privileged_shares":{"description":"An object containing share counts per share class (share classes as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1},"properties":{"isin":{"description":"Share counts per security, for shares registered with an ISIN (ISINs as properties, counts as values).","type":"object","additionalProperties":{"type":"integer","minimum":1}}},"example":{"AKT":23,"AKT_B":3,"isin":{"NO0010096985":23}}}}}},"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":"T-rank's abbreviation for the type of entity, such as `Com` for a company, `Fou` for a foundation, `Tru` for a trust, `Est` for real estate or `Pub` for the public sector.","title":"Non-empty String","type":"string","minLength":1},"active":{"description":"`false` for dissolved entities.","type":"boolean"},"birth_year":{"description":"Year of birth, natural persons only. Note that some natural persons originating in the Norwegian data have year of birth but not date of birth. These entities are considered unidentified.","type":"integer"},"country":{"title":"Country Code","description":"ISO 3166 alpha-2 country code","type":"string","minLength":2,"maxLength":2,"example":"NO"},"equity":{"type":"number"},"f_date":{"description":"Date of birth, natural persons only","title":"Date","type":"string","format":"date"},"group_equity":{"type":"number"},"group_op_profit":{"type":"number"},"group_revenue":{"type":"number"},"listing_status":{"description":"`0=Not listed`, `1=Listed`, `3=Daughter of listed company`","type":"integer","minimum":0},"municipality":{"type":"string"},"op_profit":{"type":"integer"},"ownership_source":{"type":"string"},"revenue":{"type":"integer"},"share_classes":{"description":"Number of share classes when known. For Sweden and Denmark, the value `NaN` is used for companies where voting rights differ from share.","anyOf":[{"type":"number","exclusiveMinimum":0},{"title":"NaN","description":"NaN - Not a Number","enum":["NaN"]}]}},"required":["id","name","entity_type","active"]},"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"]},"exclude_estate":{"type":"boolean"},"id":{"$ref":"#/components/schemas/kraken.node-id"},"expand_id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["data","dump_date","max","exclude_branch","dir","exclude_estate","id","expand_id"]}}},"tags":[{"name":"v2","description":"REST API"},{"name":"v1","description":"Graph API"}],"security":[{}],"paths":{"/api/v2/nodes/search":{"get":{"parameters":[{"in":"query","name":"query","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1},"description":"Freetext query. The free text index is build from the entity names -- including unaccented forms and some spelling variations, historical names, entity IDs and date-of-birth on the form `YYYYMMDD`."},{"in":"query","name":"country_codes","required":false,"schema":{"$ref":"#/components/schemas/kraken.country-codes"},"description":"Comma-separated list of ISO country codes. This is a filter, and no value means no restriction on country. The country codes is applied as a ID prefix filter."},{"in":"query","name":"type","required":false,"schema":{"default":"business","type":"string","enum":["person","estate","business"]},"description":"Kind of entity to search for: `business` for companies and other legal persons, `person` for natural persons and `estate` for real estate. Unidentified shareholders, which may be either, and aggregate shareholders are found with both `business` and `person`."},{"in":"query","name":"index","required":false,"schema":{"default":"text","type":"string","enum":["as-you-type","text"]},"description":"If `index=as-you-type`, an ngram index will be used that will give hits even when only parts of words are entered in the query."},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1},"description":"The page number to return, 1-indexed."},{"in":"query","name":"page_size","required":false,"schema":{"type":"integer","minimum":1,"default":25},"description":"Number of hits to return."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"query":{"type":"string"},"country_codes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.country-code"}},"type":{"type":"string","enum":["person","estate","business"]},"index":{"type":"string","enum":["as-you-type","text"]},"page":{"type":"integer","minimum":1},"page_size":{"type":"integer","minimum":1}},"required":["query","type","page","page_size"]},"more":{"type":"boolean"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}}},"required":["query","more","nodes"]}}}}},"tags":["v2"],"summary":"Search","description":"Freetext search, primarily by entity name.","security":[{"ApiKey":[]}]}},"/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":["alternative-bo","bo-register","control","control+ownership","ge50c-gt25","integrated","integrated-vr","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[`integrated-vr`](https://docs.trank.no/beneficial_owner_configuration_guide/#integrated-vr): Natural persons with an integrated voting rights 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[`ge50c-gt25`](https://docs.trank.no/beneficial_owner_configuration_guide/#ge50c-gt25): A specific version of Simcon where calculation is done in two steps: First, a standard Simcon calculation is run, but only voting rights (>= 50%) are taken into account. Then one final iteration is run with criterion max(ownership, voting rights) > 25%. This model is not relevant for determining who the Beneficial Owners are according to the AML legislation, but it can be used to check whether the Beneficial Owners a company has registered in the Norwegian BO register match those that should have been registered according to T-rank data for the same company.\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 or active integrated voting rights 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\n[`bo-register`](https://docs.trank.no/beneficial_owner_configuration_guide/#bo-register): Include Beneficial Owners according to a national BO register. In order to include the Norwegian BO register, the calling entity must have delegated rights to the BO register to T-rank, and the correct organization number must have been configured on the T-rank side for the client. Access to the Norwegian, Danish and Finish BO registers is only provided to obliged entities.\n\n[`alternative-bo`](https://docs.trank.no/beneficial_owner_configuration_guide/#role): Natural persons with a role in the set defined by `bo_role`, will be a beneficial owner.\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_Note_: Natural persons with a role in the set defined by `bo_role` in a foundation or a company owned by a foundation in such a way that the foundation had been a BO according to specified criteria if it had been a natural person, are considered beneficial owners regardless of the value submitted in model.\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_integrated_vr","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0},"description":"Integrated voting-rights threshold, used for `model=integrated-vr`.\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'`, `'>15'`, `'25'`, `'>25'`, `'50'`, `'>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_vr","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold for the share of voting rights 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":"bo_roles","required":false,"schema":{"default":["CEO","CHA","DCH","MEM"],"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["CEO","CON","FOU","REC","MEM","CHA","DCH","OBS","BUS","CFO","BMA","LP","GP","PRO","SUP","SIG","DME"]},"example":"CEO,MEM,CHA,DCH"},"description":"A comma-separated list of the name for the roles that triggers BO."},{"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_unidentified","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to return unidentified entities as beneficial owners. Unidentified entities are normally natural persons or foreign legal entities."},{"in":"query","name":"include_roles","required":false,"schema":{"default":false,"type":"boolean"},"description":"Whether to also return contact data -- board of directors, CEO, accountant, auditor etc. -- in the result. If true, the result will have a `company_roles` property, containing an array of natural and legal persons."},{"in":"query","name":"include_combine_reg","required":false,"schema":{"default":false,"type":"boolean"},"description":"This parameter will only have effect if `model=bo-register` is on. If `true`, a person A will be a BO in a company S whenever he is BO in a company B according to a national register and B satisfies any of the models specified in the model parameter. Note that this option does not have effect for the Norwegian BO register since this register is  accessed on the fly through API."},{"in":"query","name":"include_family","required":false,"schema":{"default":false,"type":"boolean"},"description":"Turn on support for family relations. See chapter about family relation support above for additional requirements."},{"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.  \nNote that for legal arrangements (foundations, trusts and similar), the T-rank service will always return people with specific roles in the entity as Beneficial Owners, regardless of which models are specified in the request (`model` contains `role` in the response). Where a legal arrangement owns an entity in such a way that it would have become a Beneficial Owner if it were a natural person, according to the models specified in the request, the people with roles in the arrangement are also returned (`model` then contains each model the arrangement satisfied, appended with `+role`, for example `integrated+role`). The types of roles to consider can be specified in the request.  \nAn important feature of the T-rank Beneficial Owner service is the ability to compare calculated Beneficial Owners with those an entity has registered in a national beneficial owner register. To do this, add the `bo-register` model to the list of models in the request, and inspect the model list on each Beneficial Owner returned to see whether the person was found in the register, by T-rank calculation, or both. Beneficial owner registers are only accessible to obliged entities, and your T-rank configuration must be correct for the BO register model to work.\n\n#### Support for family relations\n\nThere is support for taking close family relations into account for Beneficial Ownership, according to the Norwegian AML legislation. Family relations will be retrieved on the fly from the Norwegian Population Registry. In order to turn this feature on, the client must first authenticate to the Norwegian Population Registry through Tieto. The JWT token for this session must then be submitted in an `X-Infotorg-JWT` HTTP header. In addition, the request parameter `include_family=true` must be included in the request.","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'`, `'>15'`, `'25'`, `'>25'`, `'50'`, `'>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'`, `'>15'`, `'25'`, `'>25'`, `'50'`, `'>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."},{"in":"query","name":"exclude_estate","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to leave out real estate. Set to `false` to include the properties the entity owns, directly or through companies; their `entity_type` marks them as real estate."}],"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. This includes real estate, which is left out unless `exclude_estate` is `false`.\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/v2/roles/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"include_ownership","required":false,"schema":{"default":false,"type":"boolean"},"description":"If `true`, each returned entity will have an ownership object."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.roles-response"}}}}},"tags":["v2"],"summary":"Roles in a company","description":"Retrieve contacts (board members, auditor, CEO etc) for a given company.","security":[{"ApiKey":["roles"]}]}},"/api/v2/roles-of/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"include_ownership","required":false,"schema":{"default":false,"type":"boolean"},"description":"If `true`, each returned entity will have an ownership object."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.roles-of-response"}}}}},"tags":["v2"],"summary":"Roles held by an entity","description":"Retrieve all companies a given entity has some kind of known role in.","security":[{"ApiKey":["roles"]}]}},"/api/v2/nodes/by-other-id/{group}/{other-id}":{"get":{"parameters":[{"in":"path","name":"group","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1},"description":" * `NO` - Norwegian Social Security-Number, 11 digits. including D-numbers.\n\n * `SE` - Swedish Social Security Number, 12 digits.\n\n * `DKCVR` - Danish persons, the ID the person has been given in the CVR database.\n\n"},{"in":"path","name":"other-id","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"dump_date":{"title":"Date-time","type":"string","format":"date-time"}},"required":["dump_date"]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}}},"required":["meta","nodes"]}}}}},"tags":["v2"],"summary":"Node by SSN or other ID","description":"Look up a node by Social Security Number or other kind of ID.","security":[{"ApiKey":["privileged"]}]}},"/api/node/search":{"get":{"parameters":[{"in":"query","name":"query","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1},"description":"Freetext query. The free text index is build from the entity names -- including unaccented forms and some spelling variations, historical names, entity IDs and date-of-birth on the form `YYYYMMDD`."},{"in":"query","name":"country_codes","required":false,"schema":{"$ref":"#/components/schemas/kraken.country-codes"},"description":"Comma-separated list of ISO country codes. This is a filter, and no value means no restriction on country. The country codes is applied as a ID prefix filter."},{"in":"query","name":"type","required":false,"schema":{"default":"business","type":"string","enum":["person","estate","business"]},"description":"Kind of entity to search for: `business` for companies and other legal persons, `person` for natural persons and `estate` for real estate. Unidentified shareholders, which may be either, and aggregate shareholders are found with both `business` and `person`."},{"in":"query","name":"index","required":false,"schema":{"default":"text","type":"string","enum":["as-you-type","text"]},"description":"If `index=as-you-type`, an ngram index will be used that will give hits even when only parts of words are entered in the query."},{"in":"query","name":"page","required":false,"schema":{"default":1,"type":"integer","minimum":1},"description":"The page number to return, 1-indexed."},{"in":"query","name":"page_size","required":false,"schema":{"type":"integer","minimum":1,"default":25},"description":"Number of hits to return."},{"in":"query","name":"per-page","required":false,"schema":{"type":"integer","minimum":1},"description":"Number of hits to return. `page_size` will be used if present","deprecated":true}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"query":{"type":"string"},"country_codes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.country-code"}},"type":{"type":"string","enum":["person","estate","business"]},"index":{"type":"string","enum":["as-you-type","text"]},"page":{"type":"integer","minimum":1},"page_size":{"type":"integer","minimum":1}},"required":["query","type","page","page_size"]},"more":{"type":"boolean"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}}},"required":["query","more","nodes"]}}}}},"tags":["v1"],"summary":"Search","description":"Freetext search, primarily by entity name.","security":[{"ApiKey":[]}]}},"/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":"exclude-estate","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether estates should be excluded from the returned graph. Only relevant for graphs of type `holdings` and `both`."}],"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":"exclude-estate","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether estates 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":["alternative-bo","bo-register","control","control+ownership","ge50c-gt25","integrated","integrated-vr","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[`integrated-vr`](https://docs.trank.no/beneficial_owner_configuration_guide/#integrated-vr): Natural persons with an integrated voting rights 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[`ge50c-gt25`](https://docs.trank.no/beneficial_owner_configuration_guide/#ge50c-gt25): A specific version of Simcon where calculation is done in two steps: First, a standard Simcon calculation is run, but only voting rights (>= 50%) are taken into account. Then one final iteration is run with criterion max(ownership, voting rights) > 25%. This model is not relevant for determining who the Beneficial Owners are according to the AML legislation, but it can be used to check whether the Beneficial Owners a company has registered in the Norwegian BO register match those that should have been registered according to T-rank data for the same company.\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 or active integrated voting rights 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\n[`bo-register`](https://docs.trank.no/beneficial_owner_configuration_guide/#bo-register): Include Beneficial Owners according to a national BO register. In order to include the Norwegian BO register, the calling entity must have delegated rights to the BO register to T-rank, and the correct organization number must have been configured on the T-rank side for the client. Access to the Norwegian, Danish and Finish BO registers is only provided to obliged entities.\n\n[`alternative-bo`](https://docs.trank.no/beneficial_owner_configuration_guide/#role): Natural persons with a role in the set defined by `bo_role`, will be a beneficial owner.\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_Note_: Natural persons with a role in the set defined by `bo_role` in a foundation or a company owned by a foundation in such a way that the foundation had been a BO according to specified criteria if it had been a natural person, are considered beneficial owners regardless of the value submitted in model.\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_integrated_vr","required":false,"schema":{"default":25.0,"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","maximum":100,"exclusiveMinimum":0},"description":"Integrated voting-rights threshold, used for `model=integrated-vr`.\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'`, `'>15'`, `'25'`, `'>25'`, `'50'`, `'>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_vr","required":false,"schema":{"title":"Threshold","type":["number","string"],"pattern":"^[<>]?(?:\\d+\\.?\\d*|\\.\\d+)$","minimum":0,"maximum":100},"description":"Threshold for the share of voting rights 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":"bo_roles","required":false,"schema":{"default":["CEO","CHA","DCH","MEM"],"type":"array","style":"form","explode":false,"items":{"type":"string","enum":["CEO","CON","FOU","REC","MEM","CHA","DCH","OBS","BUS","CFO","BMA","LP","GP","PRO","SUP","SIG","DME"]},"example":"CEO,MEM,CHA,DCH"},"description":"A comma-separated list of the name for the roles that triggers BO."},{"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_unidentified","required":false,"schema":{"default":true,"type":"boolean"},"description":"Whether to return unidentified entities as beneficial owners. Unidentified entities are normally natural persons or foreign legal entities."},{"in":"query","name":"include_roles","required":false,"schema":{"default":false,"type":"boolean"},"description":"Whether to also return contact data -- board of directors, CEO, accountant, auditor etc. -- in the result. If true, the result will have a `company_roles` property, containing an array of natural and legal persons."},{"in":"query","name":"include_combine_reg","required":false,"schema":{"default":false,"type":"boolean"},"description":"This parameter will only have effect if `model=bo-register` is on. If `true`, a person A will be a BO in a company S whenever he is BO in a company B according to a national register and B satisfies any of the models specified in the model parameter. Note that this option does not have effect for the Norwegian BO register since this register is  accessed on the fly through API."},{"in":"query","name":"include_family","required":false,"schema":{"default":false,"type":"boolean"},"description":"Turn on support for family relations. See chapter about family relation support above for additional requirements."}],"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":"exclude-estate","required":false,"schema":{"default":true,"type":"boolean"},"description":"Turn on/off whether estates 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 `>`."}],"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/board/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"nodes":{"description":"Each object represents a vertex.","type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}},"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"},"role_names":{"description":"An array of the standardized name (abbreviation) for the roles.","type":"array","items":{"type":"string"}}},"required":["source","target","role_names"]}}},"required":["nodes","edges"]},"dump_date":{"title":"Date-time","type":"string","format":"date-time"},"id":{"$ref":"#/components/schemas/kraken.node-id"}},"required":["data","dump_date","id"]}}}}},"tags":["v1"],"summary":"Board graph","description":"Get the board network two hops out from requested entity.","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'`, `'>15'`, `'25'`, `'>25'`, `'50'`, `'>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/role/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"include_ownership","required":false,"schema":{"default":false,"type":"boolean"},"description":"If `true`, each returned entity will have an ownership object."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.roles-response"}}}}},"tags":["v1"],"summary":"Roles in a company","description":"Retrieve contacts (board members, auditor, CEO etc) for a given company.","security":[{"ApiKey":[]}]}},"/api/role-of/{id}":{"get":{"parameters":[{"in":"path","name":"id","required":true,"schema":{"$ref":"#/components/schemas/kraken.node-id"}},{"in":"query","name":"include_ownership","required":false,"schema":{"default":false,"type":"boolean"},"description":"If `true`, each returned entity will have an ownership object."}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/kraken.api.v2.roles-of-response"}}}}},"tags":["v1"],"summary":"Roles held by an entity","description":"Retrieve all companies a given entity has some kind of known role in.","security":[{"ApiKey":[]}]}},"/api/node/by-other-id/{group}/{other-id}":{"get":{"parameters":[{"in":"path","name":"group","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1},"description":" * `NO` - Norwegian Social Security-Number, 11 digits. including D-numbers.\n\n * `SE` - Swedish Social Security Number, 12 digits.\n\n * `DKCVR` - Danish persons, the ID the person has been given in the CVR database.\n\n"},{"in":"path","name":"other-id","required":true,"schema":{"title":"Non-empty String","type":"string","minLength":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"object","properties":{"group":{"title":"Non-empty String","type":"string","minLength":1},"other-id":{"title":"Non-empty String","type":"string","minLength":1}},"required":["group","other-id"]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/kraken.full-node"}}},"required":["query","nodes"]}}}}},"tags":["v1"],"summary":"Node by SSN or other ID","description":"Look up a node by Social Security Number or other kind of ID.","security":[{"ApiKey":["privileged"]}]}},"/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":[]}]}}}}