# Shareholders

Periodically disclosed shareholder (account) counts for listed companies, indicating how concentrated or dispersed the holding base is. A sustained decline typically signals chip concentration and accumulation by large holders or institutions—a structural read on the retail-versus-institution dynamic—while a sharp rise may reflect retail taking over. Disclosure is irregular, usually accompanying periodic or company announcements, so coverage density varies by stock. The metric is best read as a trend; a single reading carries little meaning and should be interpreted alongside price and volume.

`GET /v2/market/shareholders`

## Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `symbol` | string | No | Stock code, e.g. 000001.SZ |
| `start_date` | string | No | Start date (YYYYMMDD) |
| `end_date` | string | No | End date (YYYYMMDD) |
| `enddate` | string | No | Stat cutoff date YYYYMMDD |
| `ann_date` | string | No | Announcement date YYYYMMDD |

## Response Fields

| Field | Type | Description |
| --- | --- | --- |
| `symbol` | string | Stock code |
| `ann_date` | string | Announcement date |
| `end_date` | string | Report period end |
| `holder_num` | number | Number of shareholders |

## API Example

cURL

```
curl -H "X-API-Key: YOUR_KEY" \
  "https://asharehub.com/v2/market/shareholders?symbol=000001.SZ"
```

Python SDK

```
from asharehub import AShareHub

client = AShareHub(api_key="YOUR_KEY")
df = client.shareholders(symbol="000001.SZ")
print(df.head())
```

## Sample Data

returns a pandas.DataFrame

| symbol | ann_date | end_date | holder_num |
| --- | --- | --- | --- |
| 000001.SZ | 20260425 | 20260331 | 457610 |
| 000001.SZ | 20260321 | 20260228 | 462824 |
| 000001.SZ | 20260327 | 20260227 | 462824 |
