Ownership and holdings

Beneficial Ownership Above 5% - Schedules 13D and 13G

POSThttps://api.sec-api.io/form-13d-13g

Search every Schedule 13D and Schedule 13G filing on SEC EDGAR, the disclosures an investor files after crossing five percent of a class of a public company. The filings are converted to a standardised JSON structure and are searchable by any reported value, such as the issuer, the CUSIP, the reporting person, the type of reporter and the percent of the class owned.

Read the guide for this API →

Authentication

Send the API key either as a header or as a query parameter. The header is preferred; the query parameter exists for cases where a header cannot be set, such as opening a URL directly in a browser.

Authorization: required header

The API key on its own. Do not prefix it with Bearer or any other word.

Example Authorization: YOUR_API_KEY

token: optional query parameter

The API key, appended to the URL. Use this only when a header is not possible.

Request body

A JSON object. Content-Type must be application/json.

query: required string

The search expression in Lucene syntax. Every field listed under Searchable fields can be used, combined with AND, OR, NOT, ranges and wildcards.

Example formType:"SC 13D" AND owners.amountAsPercent:[10 TO *]

from: string, Maximum 10000

Index of the first result to return, used for pagination. Increase it by the value of size to page through results.

Default "0"

size: string, Maximum 50

Number of filings to return in one response.

Default "50"

sort: array of object

Sort order. Each item maps one field to an order object, for example [{ "filedAt": { "order": "desc" } }].

Default [{ "filedAt": { "order": "desc" } }]

order: string

Either asc or desc.

Searchable fields

Every field below can be used inside query. 79 fields are searchable, and they match the structure of the objects returned in the response.

FieldDescription
accessionNoFiling accession number
formTypeForm type — "SC 13D", "SC 13D/A", "SC 13G", "SC 13G/A"
filedAtDate the filing was accepted by EDGAR
eventDateDate of the event triggering the filing (YYYY-MM-DD)
nameOfIssuerName of the issuer of acquired securities
titleOfSecuritiesTitle of the class of securities, e.g. "Common Stock"
cusip9-digit CUSIP(s) of acquired securities
schedule13GFiledPreviously13D only — true if a 13G had been filed previously

Response

A JSON object. Nested attributes are collapsed; expand one to see its fields.

total: object

How many filings matched the query.

value: integer

Number of matching filings, capped at 10000. A value of 10000 with relation gte means more than 10000 filings matched.

relation: string

Either eq, meaning value is exact, or gte, meaning value is a floor.

filings: array of object

The matching filings, at most size per response. Every filing carries the fields below, whichever schedule it is. The cover page rows and the numbered items differ between the two schedules, and each schedule is documented in its own section underneath.

id: string

System-internal unique identifier of the filing.

accessionNo: string

Accession number of the filing, for example 0000905148-26-004270.

formType: string

Form type of the filing: SC 13D, SC 13D/A, SC 13G or SC 13G/A. The /A suffix marks an amendment.

filedAt: string

Timestamp EDGAR accepted the filing, ISO 8601 in Eastern Time, for example 2026-09-24T17:05:56-04:00.

nameOfIssuer: string

Name of the issuer of the acquired securities, for example Host Digital Inc.

titleOfSecurities: string

Title of the class of securities, for example Class A common stock, par value $0.001 per share.

cusip: array of string

CUSIPs of the acquired security classes, for example ["45257M106"]. Empty when the filer reported none.

eventDate: string

Date of the event that required the filing, YYYY-MM-DD.

amendmentNo: optional string

Amendment number on SC 13D/A and SC 13G/A filings, for example 1. Empty on an original filing, and absent on older records.

signatures: optional array

Signatures on the filing.

exhibits: optional array

Exhibits attached to the filing, if any.

Schedule 13D response

Schedule 13D is the long form, filed by a holder above five percent who does not qualify for the short form, and by a passive holder who turns active. Each cover page carries two rows that Schedule 13G has no room for, the source of funds and the legal proceedings flag. Items 1 to 7 are prose, and Item 4 states the purpose of the transaction. Older records that pre-date the structured XML format carry the cover page rows only, so the numbered items are then absent.

filings: array of object

What a Schedule 13D filing adds to the fields above.

schedule13GFiledPreviously: optional boolean

True if the filing person previously reported the same acquisition on a Schedule 13G and files this Schedule 13D because of 240.13d-1(e), 240.13d-1(f) or 240.13d-1(g).

Schedule 13G response

Schedule 13G is the short form for qualified institutions, passive investors and exempt investors, and applicableRule records which of the three the filer ticked. The cover page has 12 rows rather than 14, without the source of funds and the legal proceedings flag. Items 1 to 10 replace the prose of Schedule 13D with figures and tick boxes, so most items carry a notApplicable flag beside their text, and there is no purpose of transaction item at all. Older records that pre-date the structured XML format carry the cover page rows only, so the numbered items are then absent.

filings: array of object

What a Schedule 13G filing adds to the fields above.

Status codes

200Success. The response holds total and filings.
400The request body could not be parsed, or the Lucene expression in query is malformed.
403The API key is missing, or it is not valid.
429Too many requests. Slow the request rate and retry.
500Server error. Retry, and report it if it persists.