Skip to main content
GET
Get beneficial ownership

Overview

The beneficial ownership API returns the holders of more than 5% of a class of a company’s shares, sourced from SEC Schedules 13D and 13G. Both schedules report the same thing — a 5%+ stake — and differ by intent:
  • Schedule 13D (type=activist): the holder may seek to influence control (proxy fights, board seats, pushing for a sale).
  • Schedule 13G (type=passive): the holder certifies passive intent (typically large asset managers).
A stake can move between the two over time: an activist settles and goes passive, or a passive holder turns active. This endpoint keeps each stake’s full story in one place, so you never lose a position across that transition. You can answer questions like:
  • Who owns more than 5% of this company, and how much exactly?
  • Which of those holders are activists versus passive institutions?
  • How has a specific holder’s position changed filing by filing?
To get started, please create an account and grab your API key at financialdatasets.ai. You will use the API key to authenticate your API requests.

Coverage

Coverage begins in January 2025, when the SEC’s structured-data mandate for Schedules 13D and 13G took effect.

Two Ways to Query

Provide exactly one of ticker or filer_cik:
  • ticker — who owns more than 5% of this company
  • filer_cik — what stakes does this filer hold, across companies
By default, each stake’s current state is returned (the most recent filing in its amendment chain). Add history=true to get the full chain of original filings and amendments.

Available Tickers

You can fetch a list of companies with 5%+ holders with a GET request to: https://api.financialdatasets.ai/beneficial-ownership/tickers/

Available Filers

You can look up filers (and their CIKs) by owner name with a GET request to: https://api.financialdatasets.ai/beneficial-ownership/filers/?name=vanguard The name parameter matches owner names by prefix (case-insensitive). The response includes a total count of all matches alongside the returned page; the page size is controlled with limit (default 100, max 1000). If total is larger than the page you received, narrow the search with name.

Getting Started

There are only 3 steps for making a successful API call:
  1. Add your API key to the header of the request as X-API-KEY.
  2. Add query params like ticker and limit to filter the data.
  3. Execute the API request.

Filtering the Data

You can filter the data by ticker or filer_cik (exactly one, required), plus type, history, limit, and filing_date. Note: by default, limit is 10 (max 1000), type is null (both activist and passive), and history is false (current stake state only). The type parameter filters to activist (Schedule 13D) or passive (Schedule 13G) stakes. The filing_date parameter is used to filter by when filings were submitted. For example, you can include filters like filing_date_lte=2026-06-30 and filing_date_gte=2026-01-01 to get filings from the first half of 2026. The available filing_date operations are:
  • filing_date_lte
  • filing_date_lt
  • filing_date_gte
  • filing_date_gt
  • filing_date
Only interested in activists? The activist ownership API is a dedicated view of the same data, pinned to activist stakes and updated in real time.

Example (by ticker)

Beneficial Ownership

Example (passive stakes only)

Beneficial Ownership

Example (by filer, with history)

Beneficial Ownership

Authorizations

X-API-KEY
string
header
required

API key for authentication.

Query Parameters

ticker
string

The ticker symbol of the subject company. Provide ticker or filer_cik, not both.

filer_cik
string

The SEC CIK of the filer (the beneficial owner). Provide ticker or filer_cik, not both. Use the /beneficial-ownership/filers endpoint to look up CIKs by owner name.

type
enum<string>

Filter by stake type: activist (Schedule 13D) or passive (Schedule 13G).

Available options:
activist,
passive
history
boolean
default:false

When true, returns the full amendment history of each stake instead of only its current state.

filing_date
string<date>

Filter by exact filing date in YYYY-MM-DD format.

filing_date_gte
string<date>

Filter by filing date greater than or equal to this date (YYYY-MM-DD).

filing_date_lte
string<date>

Filter by filing date less than or equal to this date (YYYY-MM-DD).

filing_date_gt
string<date>

Filter by filing date greater than this date (YYYY-MM-DD).

filing_date_lt
string<date>

Filter by filing date less than this date (YYYY-MM-DD).

limit
integer
default:10

The maximum number of rows to return (default: 10, max: 1000).

Response

Beneficial ownership response

beneficial_owners
object[]