Insider Trading Data from SEC Form 3, 4, 5 Filings

Insider Trading API
Form 4 XML converted to JSON

The Insider Trading Data API allows you to search and list all insider buy and sell transactions of all publicly listed companies on US stock exchanges. Insider activities of company directors, officers, 10% owners and other executives are fully searchable. The insider trading database includes information about the CIK and name of the insider, her/his relationship to the company, the number of shares and securities purchased or sold, the purchase or selling price, the date of the transaction, the amount of securities held before and after the transaction occured, any footnotes such as the effect of Rule 10b-18 or 10b5-1 stock purchase plans and more. The full list of all data points is available below.

Insider trades are reported to the SEC in form 3, 4 and 5. Our system converts the XML data in SEC form 3, 4, and 5 into a standardized JSON format, indexes the information into our database and makes the data searchable through the Insider Trading Data API.

New insider transactions are added to the data set in real-time as soon as the corresponding filing is published on SEC EDGAR.

Example: Form 3 in JSON Format
1 {
2 "accessionNo": "0000921895-24-002825",
3 "filedAt": "2024-11-26T19:53:45-05:00",
4 "documentType": "3",
5 "periodOfReport": "2024-11-22",
6 "notSubjectToSection16": false,
7 "issuer": {
8 "cik": "813298",
9 "name": "DESTINATION XL GROUP, INC.",
10 "tradingSymbol": "DXLG"
11 },
12 "reportingOwner": {
13 "cik": "1959730",
14 "name": "Fund 1 Investments, LLC",
15 "address": { ... },
16 "relationship": {
17 "isDirector": false,
18 "isOfficer": false,
19 "isTenPercentOwner": true,
20 "isOther": false
21 }
22 },
23 "nonDerivativeTable": {
24 "holdings": [
25 {
26 "securityTitle": "Common Stock, par value $0.01 per share",
27 "postTransactionAmounts": {
28 "sharesOwnedFollowingTransaction": 5720548
29 },
30 "ownershipNature": {
31 "directOrIndirectOwnership": "I",
32 "natureOfOwnership": "See Footnotes",
33 "natureOfOwnershipFootnoteId": [ "F1", "F2" ]
34 }
35 }
36 // ... more non derivative holdings
37 ]
38 },
39 "derivativeTable": {
40 "holdings": [
41 {
42 "securityTitle": "Cash-Settled Total Return Swap",
43 "securityTitleFootnoteId": [ "F4" ],
44 "conversionOrExercisePriceFootnoteId": [ "F4" ],
45 "exerciseDateFootnoteId": [ "F4" ],
46 "expirationDate": "2026-02-24",
47 "expirationDateFootnoteId": [ "F5" ],
48 "underlyingSecurity": {
49 "title": "Common Stock, par value $0.01 per share",
50 "shares": 5763573
51 },
52 "ownershipNature": {
53 "directOrIndirectOwnership": "I",
54 "natureOfOwnership": "See Footnotes",
55 "natureOfOwnershipFootnoteId": [ "F1", "F2" ]
56 }
57 }
58 ]
59 },
60 "footnotes": [
61 {
62 "id": "F1",
63 "text": "Securities reported herein are held for the benefit of Pleasant Lake Onshore Feeder Fund, LP (the \"PL Fund\") and an additional private investment vehicle for which Pleasant Lake Partners LLC (\"PLP\") serves as investment adviser. Fund 1 Investments, LLC serves as managing member of PLP. Jonathan Lennon serves as managing member of Fund 1 Investments, LLC. Each of the Reporting Persons disclaims beneficial ownership of the securities reported herein except to the extent of its or his pecuniary interest therein."
64 },
65 {
66 "id": "F2",
67 "text": "Securities held for the account of the PL Fund."
68 },
69 {
70 "id": "F3",
71 "text": "Securities held for the account of an unaffiliated private fund for which PLP serves as investment adviser."
72 },
73 {
74 "id": "F4",
75 "text": "PL Fund has entered into certain cash-settled total return swap agreeements (the \"Swap Agreements\") with an unaffiliated third party financial institution, which provides PL Fund with economic exposure to an aggregate of 5,763,573 nominal shares of Common Stock. The Swap Agreements provide PL Fund with economic results that are comparable to the economic results of ownership but do not provide PL Fund with the power to vote or direct the voting or dispose of or direct the disposition of the shares of Common Stock that are the subject of the Swaps Agreements (the \"Subject Shares\"). The Reporting Persons expressly disclaim beneficial ownership of the Subject Shares except to the extent of its or his pecuniary interest therein."
76 },
77 {
78 "id": "F5",
79 "text": "The expiration date of the Swap Agreements will be automatically extended for successive 12 month periods unless one party provides written notice to the other party, at least 30 calendar days prior to the first extension and at least 15 calendar days prior to any subsequent extension, not to so extend the expiration date."
80 }
81 ]
82 }

The HTTP POST-based API accepts a search query and returns all matching insider transactions. All data points are searchable. For example, finding all insider trades by the ticker symbol of a company, looking for insider buying acticity in a particular industry or sector or monitoring transactions falling under Rule 10b5-1. The API returns a maximum of 50 insider transactions per query. Increase the from parameter by 50 each time you are requesting the next batch of matching transactions.

Dataset history:
All Form 3, 4 and 5 filings and amended versions filed since 2010 to present.
Data update frequency:
New insider transaction data is extracted, indexed, and made searchable within an average of 300 milliseconds after a new Form 3/4/5 filing is published.
Survivorship bias free:
Yes. The database includes all insider transactions, including from delisted companies.

API Endpoint

Retrieve insider trading data by sending a POST HTTP request with the search parameters as the payload to the following endpoint:

https://api.sec-api.io/insider-trading

Supported HTTP methods: POST

Request and response content type: JSON

Authentication

Use the API key shown in your user profile after sign up. There are two ways to use your API key. It's either/or.

  • Set as Authorization header. Before making a POSTrequest to https://api.sec-api.io/insider-trading, you need to set the Authorization header to YOUR_API_KEY
  • Set as query parameter. Example: https://api.sec-api.io/insider-trading?token=YOUR_API_KEY
    In this case, you make POST requests to the endpoint https://api.sec-api.io/insider-trading?token=YOUR_API_KEY and not to https://api.sec-api.io/insider-trading.

Request Parameters

All insider transaction properties are searchable. Refer to the complete list of properties in the Response Structure section below. You can send a search query as JSON formatted payload to the API using the structure below.

Request parameters:

  • query (string) - The query string defines the search expression and is written in Lucene syntax. You can specify which insider transaction document fields to search by using the field name followed by a colon :. For example, to search for insider transactions disclosed by Tesla executives, you can use the following query: issuer.tradingSymbol:TSLA. The query language supports boolean operators (AND, OR, NOT), wildcards (*), range searches across date and number fields, and nested conditions. More information about the Lucene query syntax can be found in our tutorial here. Let's look at some examples:
    • The query reportingOwner.relationship.isDirector:True AND issuer.tradingSymbol:AMZN returns all insider transactions performed by any director at Amazon.
    • nonDerivativeTable.transactions.coding.code:A AND periodOfReport:[2021-01-01 TO 2021-06-30] returns all insider purchase transactions (transaction code "A") reported in the first six months of 2021.
  • from (integer) - Specifies the starting position in the results set for your query, functioning like an array index. Default is 0, with a maximum value of 10,000, which also represents the upper limit of results that can be returned per query. To paginate through results, increment the from value accordingly - for instance, setting from to 50 retrieves results from the 51st to the 100th transaction, assuming a size parameter of 50. If your total results exceed 10,000, consider refining your search criteria to reduce the result set. A common method is to use a date range filter on the periodOfReport field, such as periodOfReport:[2021-01-01 TO 2021-01-31], to paginate through all results for January 2021 by progressively increasing the from value (0, 50, 100, etc.). For subsequent months like February 2021, update your query to periodOfReport:[2021-02-01 TO 2021-02-28] and repeat the pagination process.
  • size (integer) - The number of transactions to be returned in one response. Default: 50. Max: 50.
  • sort (array) - Specifies the sorting order of the results. The default sort order is by the filedAt field in descending order, starting with the most recent: [{ "filedAt": { "order": "desc" } }]. The sort parameter is an array of sort definitions. Each array item defines the sort order for the result. Set the order property to asc for ascending order or desc for descending order. The field property specifies the field by which the results are sorted. For example, to sort the results by the periodOfReport field in ascending order, use the following sort definition: [{ "periodOfReport": { "order": "asc" } }].

Request Examples

Find the most recent insider trades reported by Tesla executives

The example search query "query": "issuer.tradingSymbol:TSLA" returns the most recent insider transactions reported by any officer, director, 10% owner and other insider working at Tesla. The API returns the first 50 matching transactions while the response size is limited to 50 transactions and sorted by the filedAt parameter.

JSON
1 {
2 "query": "issuer.tradingSymbol:TSLA",
3 "from": "0",
4 "size": "50",
5 "sort": [{ "filedAt": { "order": "desc" } }]
6 }

Find the most recent insider purchase transactions with code A

The example search query "query": "nonDerivativeTable.transactions.coding.code:A OR derivativeTable.transactions.coding.code:A" returns the most recent transactions including grants, awards or other acquisitions of securities pursuant to Rule 16b-3(d). Our insider search engine looks for any non-derivative and derivitate transaction that includes at least one transaction with code "A". Change the code parameter to "D" or "S" to find transactions representing a security sale. The full list of transaction codes is available below.

JSON
1 {
2 "query": "nonDerivativeTable.transactions.coding.code:A OR derivativeTable.transactions.coding.code:A",
3 "from": "0",
4 "size": "50",
5 "sort": [{ "filedAt": { "order": "desc" } }]
6 }

Find insider trades reported under Rule 10b5-1

The example search query "query": "footnotes.text:10b5-1" looks for all insider transactions with footnotes that include the term "10b5-1". The API returns the first 50 matching transactions while the response size is limited to 50 transactions and sorted by the filedAt parameter.

JSON
1 {
2 "query": "footnotes.text:10b5-1",
3 "from": "0",
4 "size": "50",
5 "sort": [{ "filedAt": { "order": "desc" } }]
6 }

Response Structure

Response type: JSON

The transactions array includes all XML-to-JSON converted filings. Each array item represents a single SEC form 3, 4 or 5. Many data fields have optional footnotes attached. The "with footnote" mark indicates that the parameter has a footnote. For example, "securityTitle (string, with footnote)" indicates that securityTitle has footnotes. The corresponding footenote key is securityTitleFootnoteId. The ID and footnote content live in the array footnotes.

  • transactions (array) - An array of all matching transactions as reported in Form 3, 4 and 5. An array item represents the JSON converted XML data of a matching filing.
    • accessionNo (string) - Accession number of the original filing.
    • filedAt (dateTime) - The date and time when the transaction filing was accepted by SEC EDGAR. Example: 2022-08-09T21:23:00-04:00
    • documentType (string) - The type of the form: 3, 3/A, 4, 4/A, 5, 5/A.
    • periodOfReport (date) - Meaning in form 3: date of event requiring statement. In form 4: date of earliest transaction. In form 5: statement for issuer's fiscal year end. Format: YYYY-MM-DD
    • dateOfOriginalSubmission (date) - If amended, date of original filed of the format YYYY-MM-DD. Mandatory in form 3/A, 4/A and 5/A.
    • issuer (object) - Issuer information
      • cik (string) - CIK of issuer. Leading zeros are removed.
      • name (string) - Issuer name.
      • tradingSymbol (string) - Issuer trading symbol.
    • reportingOwner (object) - Information about the reporting entity.
      • cik (string) - CIK of reporting entity. Leading zeros are removed.
      • name (string) - Name of reporting entity.
      • relationship (object) - Relationship to issuer.
        • isDirector (boolean) - True if the reporting person is a director. False otherwise.
        • isOfficer (boolean) - True if the reporting person is an officer. False otherwise. If True, then officerTitle becomes mandatory.
        • officerTitle (string) - Officer title if isOfficer is True.
        • isTenPercentOwner (boolean) - True if the reporting person owns 10% of the issuer. False otherwise.
        • isOther (boolean) - True if the reporting person has a different relationship. False otherwise. If True, then the otherText property becomes mandatory.
        • otherText (string) - Explanation if isOther is True.
      • address (object) - Address of reporting entity.
        • street1 (string)
        • street2 (string)
        • ciy (string)
        • zipCode (string)
        • stateDescription (string)
    • nonDerivativeTable (object) - Table I - Non-Derivative Securities
      • transactions (array) - Non-derivative transactions
        • securityTitle (string, with footnote) - Title of security
        • transactionDate (date, with footnote) - Transaction date of the format YYYY-MM-DD.
        • deemedExecutionDate (date, with footnote) - Deemed execution date of the format YYYY-MM-DD.
        • coding (object) - Transaction code properties.
          • formType (string) - Valid values: 3, 3/A, 4, 4/A, 5, 5/A.
          • code (string) - See Code List for a list of possible values.
          • equitySwapInvolved (boolean)
          • footnoteId (string)
        • timeliness (string, with footnote) - Valid values: E = early, L = late, empty = on-time.
        • amounts (object)
          • shares (decimal, with footnote)
          • pricePerShare (decimal, with footnote)
          • acquiredDisposedCode (string, with footnote) - Valid values: A = acquired, D = disposed.
        • postTransactionAmounts (object) - Amount owned following reported transaction.
          • sharesOwnedFollowingTransaction (decimal, with footnote)
          • valueOwnedFollowingTransaction (decimal, with footnote)
        • ownershipNature (object)
          • directOrIndirectOwnership (string, with footnote) - Valid values: I = indirect, D = direct.
          • natureOfOwnership (string, with footnote)
      • holdings (array)
        • securityTitle (string, with footnote)
        • coding (object)
          • formType (string)
          • footnoteId (string)
        • postTransactionAmounts (object) - Amount owned following reported transaction.
          • sharesOwnedFollowingTransaction (decimal, with footnote)
          • valueOwnedFollowingTransaction (decimal, with footnote)
        • ownershipNature (object)
          • directOrIndirectOwnership (string, with footnote) - Valid values: I = indirect, D = direct.
          • natureOfOwnership (string, with footnote)
    • derivativeTable (object) - Table II - Derivative Securities
      • transactions (array)
        • securityTitle (string, with footnote)
        • conversionOrExercisePrice (decimal, with footnote)
        • transactionDate (date, with footnote)
        • deemedExecutionDate (date, with footnote)
        • coding (object) - Transaction code properties.
          • formType (string) - Valid values: 3, 3/A, 4, 4/A, 5, 5/A.
          • code (string) - See Code List for a list of possible values.
          • equitySwapInvolved (boolean)
          • footnoteId (string)
        • timeliness (string, with footnote) - Valid values: E = early, L = late, empty = on-time.
        • amounts (object)
          • shares (decimal, with footnote) - Securities acquired (A) or disposed of (D)
          • pricePerShare (decimal, with footnote) - Price of derivative security
          • acquiredDisposedCode (string, with footnote) - Valid values: A = acquired, D = disposed.
        • exerciseDate (date, with footnote) - Date exercisable and expiration date
        • expirationDate (date, with footnote)
        • underlyingSecurity (object)
          • title (string, with footnote)
          • shares (decimal, with footnote)
          • value (decimal, with footnote)
        • postTransactionAmounts (object) - Amount owned following reported transaction.
          • sharesOwnedFollowingTransaction (decimal, with footnote)
          • valueOwnedFollowingTransaction (decimal, with footnote)
        • ownershipNature (object)
          • directOrIndirectOwnership (string, with footnote) - Valid values: I = indirect, D = direct.
          • natureOfOwnership (string, with footnote)
      • holdings (array)
        • securityTitle (string, with footnote)
        • conversionOrExercisePrice (date, with footnote)
        • coding (object) - Transaction code properties.
          • formType (string) - Valid values: 3, 3/A, 4, 4/A, 5, 5/A.
          • code (string) - See Code List for a list of possible values.
          • equitySwapInvolved (boolean)
          • footnoteId (string)
        • exerciseDate (date, with footnote)
        • expirationDate (date, with footnote)
        • underlyingSecurity (object)
          • title (string, with footnote)
          • shares (decimal, with footnote)
          • value (decimal, with footnote)
        • postTransactionAmounts (object) - Amount owned following reported transaction.
          • sharesOwnedFollowingTransaction (decimal, with footnote)
          • valueOwnedFollowingTransaction (decimal, with footnote)
        • ownershipNature (object)
          • directOrIndirectOwnership (string, with footnote) - Valid values: I = indirect, D = direct.
          • natureOfOwnership (string, with footnote)
    • footnotes (array) - Array of footnote objects.
      • id (string) - ID
      • text (string) - Footnote
    • remarks (array) - Array of remark objects.
    • ownerSignatureName (string)
    • ownerSignatureNameDate (date)
  • total (object) - An object with two properties "value" and "relation". If "relation" equals "gte" (= greater than or equal), the "value" is always 10,000. It indicates that more than 10,000 filings match the query. In order to retrieve all filings, you have to iterate over the results using the "from" and "size" variables sent to the API. If "relation" equals "eq" (= equal), the "value" represents the exact number of filings matching the query. In this case, "value" is always less than 10,000. We don't calculate the exact number of matching filings for results greater than 10,000.

Transaction Code List

ValueMeaning
AGrant, award or other acquisition pursuant to Rule 16b-3(d)
CConversion of derivative security
DDisposition to the issuer of issuer equity securities pursuant to Rule 16b-3(e)
EExpiration of short derivative position
FPayment of exercise price or tax liability by delivering or withholding securities incident to the receipt, exercise or vesting of a security issued in accordance with Rule 16b-3
GBona fide gift
HExpiration (or cancellation) of long derivative position with value received
IDiscretionary transaction in accordance with Rule 16b-3(f) resulting in acquisition or disposition of issuer securities
JOther acquisition or disposition (describe transaction)
LSmall acquisition under Rule 16a-6
MExercise or conversion of derivative security exempted pursuant to Rule 16b-3
OExercise of out-of-the-money derivative security
POpen market or private purchase of non-derivative or derivative security
SOpen market or private sale of non-derivative or derivative security
UDisposition pursuant to a tender of shares in a change of control transaction
WAcquisition or disposition by will or the laws of descent and distribution
XExercise of in-the-money or at-the-money derivative security
ZDeposit into or withdrawal from voting trust

Response Examples

The example illustrates the response to the search query "query": "issuer.tradingSymbol:TSLA" and includes the most recent insider trades executed by Elon Musk at Tesla.

JSON
1 {
2 "total": {
3 "value": 489,
4 "relation": "eq"
5 },
6 "transactions": [
7 {
8 "id": "026dc8fd804de46ef08b5bad594998c5",
9 "accessionNo": "0000899243-22-028189",
10 "filedAt": "2022-08-09T21:23:00-04:00",
11 "schemaVersion": "X0306",
12 "documentType": "4",
13 "periodOfReport": "2022-08-09",
14 "notSubjectToSection16": false,
15 "issuer": {
16 "cik": "1318605",
17 "name": "Tesla, Inc.",
18 "tradingSymbol": "TSLA"
19 },
20 "reportingOwner": {
21 "cik": "1494730",
22 "name": "Musk Elon",
23 "address": {
24 "street1": "C/O TESLA, INC.",
25 "street2": "1 TESLA ROAD",
26 "city": "AUSTIN",
27 "state": "TX",
28 "zipCode": "78725"
29 },
30 "relationship": {
31 "isDirector": true,
32 "isOfficer": true,
33 "officerTitle": "CEO",
34 "isTenPercentOwner": true,
35 "isOther": false
36 }
37 },
38 "nonDerivativeTable": {
39 "transactions": [
40 {
41 "securityTitle": "Common Stock",
42 "transactionDate": "2022-08-09",
43 "coding": {
44 "formType": "4",
45 "code": "S",
46 "equitySwapInvolved": false
47 },
48 "amounts": {
49 "shares": 435,
50 "pricePerShare": 872.469,
51 "pricePerShareFootnoteId": [
52 "F1"
53 ],
54 "acquiredDisposedCode": "D"
55 },
56 "postTransactionAmounts": {
57 "sharesOwnedFollowingTransaction": 155058484
58 },
59 "ownershipNature": {
60 "directOrIndirectOwnership": "I",
61 "natureOfOwnership": "by Trust",
62 "natureOfOwnershipFootnoteId": [
63 "F2"
64 ]
65 }
66 },
67 {
68 "securityTitle": "Common Stock",
69 "transactionDate": "2022-08-09",
70 "coding": {
71 "formType": "4",
72 "code": "S",
73 "equitySwapInvolved": false
74 },
75 "amounts": {
76 "shares": 13292,
77 "pricePerShare": 874.286,
78 "pricePerShareFootnoteId": [
79 "F3"
80 ],
81 "acquiredDisposedCode": "D"
82 },
83 "postTransactionAmounts": {
84 "sharesOwnedFollowingTransaction": 155045192
85 },
86 "ownershipNature": {
87 "directOrIndirectOwnership": "I",
88 "natureOfOwnership": "by Trust",
89 "natureOfOwnershipFootnoteId": [
90 "F2"
91 ]
92 }
93 },
94 {
95 "securityTitle": "Common Stock",
96 "transactionDate": "2022-08-09",
97 "coding": {
98 "formType": "4",
99 "code": "S",
100 "equitySwapInvolved": false
101 },
102 "amounts": {
103 "shares": 6048,
104 "pricePerShare": 876.629,
105 "pricePerShareFootnoteId": [
106 "F4"
107 ],
108 "acquiredDisposedCode": "D"
109 },
110 "postTransactionAmounts": {
111 "sharesOwnedFollowingTransaction": 155039144
112 },
113 "ownershipNature": {
114 "directOrIndirectOwnership": "I",
115 "natureOfOwnership": "by Trust",
116 "natureOfOwnershipFootnoteId": [
117 "F2"
118 ]
119 }
120 }
121 ]
122 },
123 "footnotes": [
124 {
125 "id": "F1",
126 "text": "The price reported in Column 4 is a weighted average price. These shares were sold in multiple transactions at prices ranging from $872.210 to $872.610, inclusive. The reporting person undertakes to provide Tesla, Inc., any security holder of Tesla, Inc. or the staff of the Securities and Exchange Commission, upon request, full information regarding the number of shares sold at each separate price within the range set forth in this footnote."
127 },
128 {
129 "id": "F2",
130 "text": "The Elon Musk Revocable Trust dated July 22, 2003, for which the reporting person is trustee."
131 },
132 {
133 "id": "F3",
134 "text": "The price reported in Column 4 is a weighted average price. These shares were sold in multiple transactions at prices ranging from $873.660 to $874.640, inclusive. The reporting person undertakes to provide Tesla, Inc., any security holder of Tesla, Inc. or the staff of the Securities and Exchange Commission, upon request, full information regarding the number of shares sold at each separate price within the range set forth in this footnote."
135 },
136 {
137 "id": "F4",
138 "text": "The price reported in Column 4 is a weighted average price. These shares were sold in multiple transactions at prices ranging from $876.100 to $876.925, inclusive. The reporting person undertakes to provide Tesla, Inc., any security holder of Tesla, Inc. or the staff of the Securities and Exchange Commission, upon request, full information regarding the number of shares sold at each separate price within the range set forth in this footnote."
139 }
140 ],
141 "remarks": "This Form 4 is the second of two Form 4s being filed by the Reporting Person relating to the same event. The Form 4 has been split into two filings to cover all 33 individual transactions that occurred on the same Transaction Date, because the SEC's EDGAR filing system limits a single Form 4 to a maximum of 30 separate transactions. Each Form 4 will be filed by the Reporting Person.",
142 "ownerSignatureName": "By: Aaron Beckman by Power of Attorney For: Elon Musk",
143 "ownerSignatureNameDate": "2022-08-09"
144 }
145 ]
146 }

References

For more information about Form 3, 4 and 5 visit the SEC websites here:

Regulations

Research Papers