# Institutional Ownership

`GET` `/v1/institutional-ownership/{ticker}`

List exchange-traded funds (ETFs) that hold a given equity ticker. Each row includes the ETF ticker, fund name, portfolio weight, market value, shares held and as-of date when available. Use this for institutional ownership screens, ETF overlap analysis and understanding passive holder concentration.

## Use cases

- Institutional ownership tables on company profile pages
- ETF overlap and holder concentration analysis
- Identifying which passive funds own a name
- Risk and liquidity research on ETF holder bases

## Input parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `ticker` | string | Yes | Equity ticker, e.g. AAPL. |
| `limit` | integer | No | Max holders, 1-500 (default 300). |

## Output parameters

| Name | Type | Description |
| --- | --- | --- |
| `ticker` | string | Equity ticker requested. |
| `results` | array | ETFs holding this ticker. |
| `results[].etfTicker` | string | ETF ticker. |
| `results[].etfName` | string | ETF or fund name. |
| `results[].weightPercentage` | float | Portfolio weight percent. |
| `results[].marketValue` | float | Reported market value in USD. |
| `results[].sharesNumber` | integer | Shares held. |
| `results[].asOf` | string | Holdings as-of timestamp when available. |
| `count` | integer | Number of ETF holders returned. |

## Example response

```json
{
  "ticker": "AAPL",
  "results": [
    {
      "etfTicker": "SPY",
      "etfName": "SPDR S&P 500 ETF Trust",
      "holderEtf": true,
      "holderFund": false,
      "weightPercentage": 6.76,
      "marketValue": 51507242219,
      "sharesNumber": 177105844,
      "asOf": "2026-06-05T22:02:50-04:00"
    }
  ],
  "count": 1
}
```

## Examples

### cURL

```bash
curl "https://api.vantafin.com/v1/institutional-ownership/AAPL?apiKey=$VANTAFIN_API_KEY"
```

### Python

```python
from vantafin import RESTClient

client = RESTClient("vf-live-your_api_key")

result = client.get_institutional_ownership("AAPL")

print(result)
```

### JavaScript

```javascript
import { RestClient } from "vantafin";

const client = new RestClient("vf-live-your_api_key");

const result = await client.getInstitutionalOwnership("AAPL");

console.log(result);
```

### Go

```go
package main

import (
	"fmt"
	"log"

	"github.com/vantafin/vantafin-go"
)

func main() {
	client := vantafin.NewClient("vf-live-your_api_key")

	result, err := client.GetInstitutionalOwnership("AAPL")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(result)
}
```

### Java

```java
import com.vantafin.RestClient;

public class Example {
    public static void main(String[] args) throws Exception {
        RestClient client = new RestClient("vf-live-your_api_key");

        Object result = client.getInstitutionalOwnership("AAPL");

        System.out.println(result);
    }
}
```

### Ruby

```ruby
require "vantafin"

client = Vantafin::RestClient.new("vf-live-your_api_key")

result = client.get_institutional_ownership("AAPL")

pp result
```
