Get Share Holdings
API to retrieve the quarterly shareholding pattern for a company identified by its ISIN. The response breaks down the ownership structure by shareholder type — such as Promoters, FII (Foreign Institutional Investors), DII (Domestic Institutional Investors), and Public — across multiple reporting quarters, expressed as a percentage of total shares.
Path Parameters
| Name | Required | Type | Description |
|---|---|---|---|
| isin | true | string | International Securities Identification Number (ISIN) of the company. Example: INE002A01018. |
Request
curl --location 'https://api.upstox.com/v2/fundamentals/INE002A01018/share-holdings' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your_access_token}'
For additional samples in various languages, please refer to the Sample code section on this page.
Responses
- 200
- 4XX
Response Body
{
"status": "success",
"data": [
{
"category": "promoters",
"history": [
{ "period": "Mar 2026", "value": 50.0 },
{ "period": "Dec 2025", "value": 50.01 },
{ "period": "Sep 2025", "value": 50.01 },
{ "period": "Jun 2025", "value": 50.07 }
]
},
{
"category": "fii",
"history": [
{ "period": "Mar 2026", "value": 18.67 },
{ "period": "Dec 2025", "value": 19.09 },
{ "period": "Sep 2025", "value": 18.65 },
{ "period": "Jun 2025", "value": 19.21 }
]
},
{
"category": "other_dii",
"history": [
{ "period": "Mar 2026", "value": 10.77 },
{ "period": "Dec 2025", "value": 10.66 },
{ "period": "Sep 2025", "value": 10.67 },
{ "period": "Jun 2025", "value": 10.48 }
]
},
{
"category": "mutual_funds",
"history": [
{ "period": "Mar 2026", "value": 9.78 },
{ "period": "Dec 2025", "value": 9.52 },
{ "period": "Sep 2025", "value": 9.66 },
{ "period": "Jun 2025", "value": 9.32 }
]
},
{
"category": "retail_and_other",
"history": [
{ "period": "Mar 2026", "value": 10.79 },
{ "period": "Dec 2025", "value": 10.73 },
{ "period": "Sep 2025", "value": 11.01 },
{ "period": "Jun 2025", "value": 10.92 }
]
}
]
}
| Name | Type | Description |
|---|---|---|
| status | string | A string indicating the outcome of the request. Possible values: success, error. |
| data | array | List of shareholding entries, one per shareholder category. |
| data[].category | string | Shareholder category identifier. Possible values: promoters, fii, other_dii, mutual_funds, retail_and_other. |
| data[].history | array | Quarterly shareholding history for this category. |
| data[].history[].period | string | Reporting quarter label, e.g., Mar 2026. |
| data[].history[].value | number | Percentage of total shares held by this category for the period. |
Error codes
| Error code | Description |
|---|---|
| UDAPI1206 | Invalid ISIN - The provided ISIN is invalid. |
Sample Code
- Python
- Node.js
- Java
- PHP
import requests
url = 'https://api.upstox.com/v2/fundamentals/INE002A01018/share-holdings'
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}
response = requests.get(url, headers=headers)
print(response.json())
const axios = require('axios');
axios.get('https://api.upstox.com/v2/fundamentals/INE002A01018/share-holdings', {
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer {your_access_token}'
}
}).then(response => console.log(response.data))
.catch(error => console.error('Error:', error));
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class GetShareHoldings {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("https://api.upstox.com/v2/fundamentals/INE002A01018/share-holdings"))
.header("Accept", "application/json")
.header("Authorization", "Bearer {your_access_token}")
.GET()
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = 'https://api.upstox.com/v2/fundamentals/INE002A01018/share-holdings';
$headers = [
'Accept: application/json',
'Authorization: Bearer {your_access_token}'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_errno($ch) ? print('Error: ' . curl_error($ch)) : print($response);
curl_close($ch);
?>
Loading...