---
title: "Shareholders Composition"
method: GET
path: "/v2/company/shareholders-composition/{symbol}/"
tags: ["Detailed Reports"]
---

# Shareholders Composition

`GET /v2/company/shareholders-composition/{symbol}/`

<Note>IDX symbol: 4 letters, optionally followed by `.jk` (case-insensitive). E.g. `BBCA`, `BMRI`, `TLKM`.</Note>

Returns monthly shareholder composition snapshots for a given IDX-listed company within a single calendar year, broken down by investor category (insurance, corporate, pension fund, financial institutions, individual, mutual fund, securities companies, foundation, other) for both local (`_l`) and foreign (`_f`) investors.

<Note>Data is available from 2021 onwards. Querying earlier years returns an empty `data` array.</Note>

<Info>Costs 1 API credit.</Info>

## Path parameters

- `symbol` string, required

## Query parameters

- `year` integer

## Response `200`

Monthly shareholders composition snapshots for the symbol in the requested year.

- ShareholdersCompositionResponse
  - `symbol` string, required — IDX ticker symbol (with `.JK` suffix).
  - `year` integer, required — Calendar year of the snapshots returned.
  - `data` ShareholdersCompositionRow[], required
    - `date` string, date, required — Snapshot date (end-of-month).
    - `shares_number` integer, nullable, required — Total outstanding shares on the snapshot date.
    - `insurance_l` integer, nullable, required — Shares held by local insurance companies.
    - `corporate_l` integer, nullable, required — Shares held by local corporates.
    - `pension_fund_l` integer, nullable, required — Shares held by local pension funds.
    - `financial_institutions_l` integer, nullable, required — Shares held by local financial institutions.
    - `individual_l` integer, nullable, required — Shares held by local individuals.
    - `mutual_fund_l` integer, nullable, required — Shares held by local mutual funds.
    - `securities_companies_l` integer, nullable, required — Shares held by local securities companies.
    - `foundation_l` integer, nullable, required — Shares held by local foundations.
    - `other_l` integer, nullable, required — Shares held by other local entities.
    - `total_l` integer, nullable, required — Total local-investor shares.
    - `insurance_f` integer, nullable, required — Shares held by foreign insurance companies.
    - `corporate_f` integer, nullable, required — Shares held by foreign corporates.
    - `pension_fund_f` integer, nullable, required — Shares held by foreign pension funds.
    - `financial_institutions_f` integer, nullable, required — Shares held by foreign financial institutions.
    - `individual_f` integer, nullable, required — Shares held by foreign individuals.
    - `mutual_fund_f` integer, nullable, required — Shares held by foreign mutual funds.
    - `securities_companies_f` integer, nullable, required — Shares held by foreign securities companies.
    - `foundation_f` integer, nullable, required — Shares held by foreign foundations.
    - `other_f` integer, nullable, required — Shares held by other foreign entities.
    - `total_f` integer, nullable, required — Total foreign-investor shares.
    - `numbers_of_shareholders` integer, nullable, required — Total number of shareholders on the snapshot date.
    - `change_in_shareholders` integer, nullable, required — Net change in shareholder count vs the previous snapshot.

## Other responses

- `404` — Symbol not found in shareholders composition data.
- `429` — Rate limit exceeded.

---

[API](https://skmtc.dev/sectors/apis/sectors-api.md) · [All operations](https://skmtc.dev/sectors/apis/sectors-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sectors/sectors-api/revisions/49e492f19d77/schema)
