Skip to main content
Ownership research usually starts with a simple question: who owns the security, who is changing that position, and what did the filing actually say? SEC API turns the relevant disclosure families into queryable records while keeping the accession number and filing URL beside the data. Use this surface when you need to inspect a manager’s 13F holdings, track reported insider transactions, review beneficial-ownership filings, or compare executive compensation. It is not a substitute for reading a filing when the investment decision depends on footnotes, amendments, or the terms of a transaction.

Start with the question you have

If you need to…UseWhat to keep
Inspect one manager’s reported portfolioGET /v1/owners/13freportDate, filingDate, accessionNumber, and the holding fields
Compare a manager’s latest two parsable reportsPOST /v1/owners/13f/compareboth filing dates, row status, deltas, and provenance
Find holders of one issuerGET /v1/owners/institutional/tickerreport date, manager identity, value, shares, and rank
Review reported insider transactionsGET /v1/insidersForm 4 code, direction, transaction date, accession number, and filing URL
Find a 13D or 13G disclosureGET /v1/owners/13d-13gfiler, ownership context, filing date, and source filing

First requests

Retrieve the latest parsable 13F report for a manager CIK:
curl -H "x-api-key: $SECAPI_API_KEY" \
  "https://api.secapi.ai/v1/owners/13f?cik=0001067983&limit=20"
Retrieve Form 4 transactions for an issuer:
curl -H "x-api-key: $SECAPI_API_KEY" \
  "https://api.secapi.ai/v1/insiders?ticker=AAPL&forms=4&limit=10"
The 13F response includes the manager name, filing date, period of report, accession number, holdings, and provenance. An insider row includes the reporting owner’s name and role, Form 4 transaction code and direction, security title, transaction shares and price when reported, post-transaction ownership when reported, and the source filing.

Compare a manager’s latest reports

Use the comparison endpoint when you want the latest two parsable reports available to the service for a manager. The endpoint does not accept two arbitrary quarter selectors; inspect currentFilingDate, previousFilingDate, and the returned source provenance before describing a change as a particular quarter-over-quarter move. If you need the accession number for both reports, list the manager’s filings and retrieve the selected reports separately.
curl -X POST \
  -H "x-api-key: $SECAPI_API_KEY" \
  -H "content-type: application/json" \
  -d '{"cik":"0001067983","limit":50}' \
  "https://api.secapi.ai/v1/owners/13f/compare"
For a specific reporting period, first list the manager’s filings or request a report with reportDate=YYYY-MM-DD:
curl -H "x-api-key: $SECAPI_API_KEY" \
  "https://api.secapi.ai/v1/owners/13f/filings?cik=0001067983&limit=8"

Read ownership data carefully

  • 13F is delayed and incomplete by design. It reports a manager’s qualifying holdings after quarter end, not a live portfolio, and it does not describe every asset class or position.
  • A row is not the whole thesis. A new or reduced position can reflect rebalancing, client flows, derivatives, or other context that the holding row cannot settle.
  • Transaction code and direction are different fields. Form 4 code P identifies a purchase transaction; transactionDirection describes whether the reported shares were acquired or disposed. Keep both when classifying activity.
  • Keep the source trail. Preserve accessionNumber and provenance.filingUrl in downstream reports so an analyst can inspect the original filing.

Continue from here

Monitor 13F holdings

Build a quarterly comparison workflow with REST, Python, and JavaScript.

Analyze insider trading

Filter Form 4 transactions and preserve the filing evidence.

Ownership API reference

Inspect endpoint parameters and response contracts.