Holding object
Returned by POST /ownership/initial-holdings, POST /ownership/initial-holding-ids, and POST /screener/initial-holdings. A Form 3 reports the positions held on becoming an insider.
idHolding id. Pass to POST /ownership/initial-holding-ids.
is_derivativeDerivative table row (true) or non-derivative (false).
security_title, direct_or_indirect, nature_of_ownershipAs filed.
shares_ownedAmount of securities beneficially owned, as filed. null on derivative rows and on cancelled rows.
footnote_refsFootnote ids for this holding. Resolve against the filing's footnotes map.
source_locatorCombine with the filing's source_url_prefix to build the SEC URL.
restatednull, "cancelled", "modified", or "added" — set when an amendment changed this holding.
priorPresent only when restated is set. The pre-amendment values.
split_adjustedPresent only when the filed values are not on the current per-share basis. See below.
data_quality_flagsPresent only when at least one rule fires. See below.
Derivative rows additionally carry conversion_or_exercise_price, exercise_date, expiration_date, underlying_security_title, underlying_security_shares, and underlying_security_value.
#split_adjusted
Same meaning and presence rule as on the transaction object: present only when the filed values are not on the current per-share basis.
"split_adjusted": {
"shares_owned": 4000.0,
"underlying_security_shares": null,
"conversion_or_exercise_price": null,
"split_adjustment_factor": 4.0
}#data_quality_flags
Rows that fail a consistency check carry one or more of:
missing_shares_owned, missing_underlying_amount, derivative_date_order, negative_shares_owned, negative_underlying_security_shares, negative_underlying_security_value, negative_conversion_or_exercise_price, manual_flags.
Rows flagged manual_flags also carry a manual_flags array of {code, note} entries describing the issue.
Flagged rows are excluded from POST /ownership/initial-holdings, POST /ownership/initial-holdings/stats and POST /screener/initial-holdings unless include_anomalies=true (holding_filters.include_anomalies on the screener). Each endpoint reports how many it withheld: the listing in anomalies_excluded_on_page (this page only), stats and the screener in anomalies_excluded_count (the whole requested range).