Skip to main content
POST /v1/owners/13f/compare compares the latest two parsable 13F reports found for an institutional manager. The input CIK belongs to the manager/filer, not the issuer whose security appears in a holding. The route is a disclosed-holdings comparison, not a current portfolio, trade blotter, or two-period query API.

Make a manager-level comparison

The JSON body requires cik; limit is 1 through 50 and bounds the parsed holdings considered per report. The response includes managerName, currentFilingDate, previousFilingDate, rows, provenance, freshness metadata, and requestId. Each row identifies issuer, nullable cusip, status (added, removed, changed, or unchanged), current and previous valueUsdThousands, current and previous shares, and deltas. Reported value fields are in thousands of USD. Retain both filing dates and provenance when ranking a change.

Select historical periods yourself

The comparison route has no period_a or period_b inputs. To compare selected reporting dates, first use:
Then retrieve the relevant reports with GET /v1/owners/13f and compare the source-labelled outputs in your own application.

Interpretation limits

The service needs two parsable reports. A failure or non-2xx response is not an unchanged portfolio; handle it as an unavailable comparison and log requestId. 13F disclosures are delayed and do not reveal all positions, derivatives, short exposure, cash, or transactions after the report date. An added/removed row is a difference in reported filing data, not an explanation of manager intent.

Next action

Use the manager CIK, retain filing dates and provenance for each change, and open the underlying 13F before treating a reported position change as an investment signal.