/api/v1/form-13f/holdings/searchFind which funds hold a specific security by ticker or CUSIP.
Find which funds hold a specific security by ticker or CUSIP.
Why use this
Common use case
Returns matching institutional holders in data.funds with cik, name, symbol, shares and value. data.search contains the uppercase query, matched_security and optional successor-chain expansion metadata. data.period identifies the selected report date. data.ownership_breakdown contains market ownership context when available, otherwise null. meta.total and meta.total_shares/total_value cover all matching holders, while data.funds is limited by the request. A security with no mapping returns an empty funds array and matched_security null; period and ownership_breakdown can be absent on early empty responses. The response does not expose the previously documented holders, resolved, position-status or per-fund portfolio-weight fields. This documentation correction preserves existing API behavior.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| q | query | required | — | — | Ticker symbol (e.g. AAPL) or CUSIP (e.g. 037833100). Min 2 chars. | apple |
| limit | query | optional | 20 | — | Max fund results (up to 100) | 20 |
| period | query | optional | — | — | Report period filter (YYYY-MM-DD). Defaults to latest. | 2025-12-31 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| status | string | no | — |
| request_id | string | yes | — |
| timestamp | string | no | — |
| data | object | no | — |
| data.funds | array | no | — |
| data.funds[].cik | string | no | — |
| data.funds[].name | string | yes | — |
| data.funds[].symbol | string | yes | — |
| data.funds[].shares | integer | no | — |
| data.funds[].value | number | no | — |
| data.search | object | no | — |
| data.search.query | string | no | — |
| data.search.matched_security | object | yes | — |
| data.search.matched_security.cusip | string | no | — |
| data.search.matched_security.ticker | string | yes | — |
| data.search.matched_security.name | string | yes | — |
| data.search.matched_security.cusip_count | integer | no | Optional; omitted when not applicable. |
| data.search.matched_security.source | string | no | Optional; omitted when not applicable. |
| data.search.chain_expanded | boolean | no | Optional; omitted when not applicable. |
| data.search.cusip_count_with_chain | integer | no | Optional; omitted when not applicable. |
| data.period | string | yes | Optional; omitted when not applicable. |
| data.ownership_breakdown | object | yes | Optional; omitted when not applicable. |
| data.ownership_breakdown.market_cap | number | yes | — |
| data.ownership_breakdown.share_price | number | yes | — |
| data.ownership_breakdown.shares_outstanding | number | yes | — |
| data.ownership_breakdown.float_shares | number | yes | — |
| data.ownership_breakdown.institutional_pct | number | yes | — |
| data.ownership_breakdown.insider_pct | number | yes | — |
| data.ownership_breakdown.retail_pct | number | yes | — |
| data.ownership_breakdown.our_13f_shares | number | yes | — |
| data.ownership_breakdown.our_13f_value | number | yes | — |
| data.ownership_breakdown.our_13f_pct | number | yes | — |
| data.ownership_breakdown.beta | number | yes | — |
| data.ownership_breakdown.volatility_90d | number | yes | — |
| data.ownership_breakdown.week_52_high | number | yes | — |
| data.ownership_breakdown.week_52_low | number | yes | — |
| data.ownership_breakdown.our_13f_holders | integer | no | — |
| meta | object | no | — |
| meta.total | integer | no | — |
| meta.limit | integer | no | Optional; omitted when not applicable. |
| meta.total_shares | integer | no | Optional; omitted when not applicable. |
| meta.total_value | number | no | Optional; omitted when not applicable. |
Sample response
- "status": "success"
- "request_id": null
- "timestamp": "2026-09-27T12:00:00Z"
- "data":
- "funds":
- "search":
- "period": "2026-06-30"
- "ownership_breakdown": null
- "meta":
- "total": 1
- "limit": 20
- "total_shares": 100
- "total_value": 1000
Errors
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected server-side failure. Retry with backoff; report if persistent. |
Code samples
curl "https://api.finradar.ai/api/v1/form-13f/holdings/search?q=apple&limit=20&period=2025-12-31" \
-H "X-API-Key: YOUR_API_KEY"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).