---
title: "List Cross Holdings"
method: GET
path: "/v1/ownership/cross-holdings"
tags: ["ownership"]
---

# List Cross Holdings

`GET /v1/ownership/cross-holdings`

## Request

- Base URL: `https://api.axiora.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.axiora.dev/v1/ownership/cross-holdings`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/axioradev/apis/axiora-api/docs/v1/ownership/cross-holdings/get.ts> (a function with typed inputs; its response is checked against the schema)

All detected cross-shareholding pairs (持ち合い株 / 政策保有株),
market-wide.

Returns every reciprocal stake between listed Japanese companies,
including the sub-threshold pairs that form most of Japanese
keiretsu structure. Sorted by combined holding ratio so the largest
mutual stakes appear first; pairs with NULL ratios sink to the end.

'relationship_type' distinguishes source + confidence, see
the field's description. Use this as the inventory of cross-
holdings that exist; pair it with `/ownership/unwinding-scoreboard`
to see which of those are actively declining.

## Query parameters

- `limit` integer: Results per page
- `offset` integer: Results to skip (ignored when cursor is set)
- `cursor` string, nullable: Opaque cursor for keyset pagination

## Response `200`

Successful Response

- ListResponseCrossHoldingOut
  - `data` CrossHoldingOut[], required: Array of result objects.
    - `company_a_edinet_code` string, required: EDINET code of company A
    - `company_a_securities_code` string, nullable: Securities code of company A
    - `company_a_name` string, nullable: Name of company A
    - `company_b_edinet_code` string, required: EDINET code of company B
    - `company_b_securities_code` string, nullable: Securities code of company B
    - `company_b_name` string, nullable: Name of company B
    - `a_holds_b_pct` number, nullable: A's holding ratio in B (%). May be NULL when the underlying disclosure type doesn't carry a ratio (see relationship_type).
    - `b_holds_a_pct` number, nullable: B's holding ratio in A (%). Same NULL semantics as a_holds_b_pct.
    - `min_pct` number, nullable: The smaller of the two reciprocal holdings (%). NULL when either side's ratio is NULL.
    - `sector` string, nullable: Shared or representative sector for the pair (company A's sector when both share it; A's sector otherwise). Null when sector is unknown.
    - `relationship_type` string, required: Pair classification. One of: 'mutual_attested' (both sides confirm holding each other), 'single_side_attested' (one side confirms), 'mutual_self_join' (both directions observed without explicit confirmation), 'mutual' (legacy high-threshold pair, only these rows carry holding ratios).
    - `cluster_id` integer, nullable: Cluster grouping ID
  - `meta` AxioraApiSchemasMeta, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-16** `996d12eb9cb3`: 5 breaking, 4 warning, 2 info
  - the response property `data/items/a_holds_b_pct` became optional for the status `200`
  - the response property `data/items/b_holds_a_pct` became optional for the status `200`
  - response property `data/items/a_holds_b_pct` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `data/items/b_holds_a_pct` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - …7 more
- **2026-03-31** `debdd9fbc570`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/axioradev/apis/axiora-api/changes/v1/ownership/cross-holdings/get.md)

---

[API](https://skmtc.dev/axioradev/apis/axiora-api.md) - [All operations](https://skmtc.dev/axioradev/apis/axiora-api/llms.txt) - [OpenAPI document](https://skmtc.dev/axioradev/apis/axiora-api/revisions/47e27a7f92de?raw)
