form4api 0.7.0__tar.gz → 0.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {form4api-0.7.0/form4api.egg-info → form4api-0.8.0}/PKG-INFO +15 -5
  2. form4api-0.7.0/PKG-INFO → form4api-0.8.0/README.md +12 -21
  3. {form4api-0.7.0 → form4api-0.8.0}/form4api/__init__.py +4 -0
  4. {form4api-0.7.0 → form4api-0.8.0}/form4api/_generated.py +130 -38
  5. form4api-0.8.0/form4api/_types.py +157 -0
  6. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/_insiders.py +2 -2
  7. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/_transactions.py +37 -8
  8. form4api-0.7.0/README.md → form4api-0.8.0/form4api.egg-info/PKG-INFO +31 -2
  9. {form4api-0.7.0 → form4api-0.8.0}/pyproject.toml +3 -3
  10. {form4api-0.7.0 → form4api-0.8.0}/tests/test_client.py +60 -0
  11. form4api-0.7.0/form4api/_types.py +0 -98
  12. {form4api-0.7.0 → form4api-0.8.0}/LICENSE +0 -0
  13. {form4api-0.7.0 → form4api-0.8.0}/form4api/_client.py +0 -0
  14. {form4api-0.7.0 → form4api-0.8.0}/form4api/_errors.py +0 -0
  15. {form4api-0.7.0 → form4api-0.8.0}/form4api/_webhook_utils.py +0 -0
  16. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/__init__.py +0 -0
  17. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/_companies.py +0 -0
  18. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/_signals.py +0 -0
  19. {form4api-0.7.0 → form4api-0.8.0}/form4api/resources/_webhooks.py +0 -0
  20. {form4api-0.7.0 → form4api-0.8.0}/form4api.egg-info/SOURCES.txt +0 -0
  21. {form4api-0.7.0 → form4api-0.8.0}/form4api.egg-info/dependency_links.txt +0 -0
  22. {form4api-0.7.0 → form4api-0.8.0}/form4api.egg-info/requires.txt +0 -0
  23. {form4api-0.7.0 → form4api-0.8.0}/form4api.egg-info/top_level.txt +0 -0
  24. {form4api-0.7.0 → form4api-0.8.0}/setup.cfg +0 -0
  25. {form4api-0.7.0 → form4api-0.8.0}/tests/test_generated.py +0 -0
  26. {form4api-0.7.0 → form4api-0.8.0}/tests/test_method_name.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: form4api
3
- Version: 0.7.0
4
- Summary: Python client for the Form4API — real-time SEC Form 4 insider trading data
3
+ Version: 0.8.0
4
+ Summary: Python client for the Form4API — real-time SEC Form 4 insider trading, Form 144 intent-to-sell, institutional 13F-HR, and congressional STOCK Act trading data, including the insider/Congress convergence signal
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://www.form4api.com
7
7
  Project-URL: Documentation, https://www.form4api.com/docs
8
8
  Project-URL: Repository, https://github.com/theodor90/form4api-py.git
9
- Keywords: insider-trading,sec,sec-edgar,edgar,form-4,form4,form-144,13f,13f-hr,financial-data,stock-market,stocks,fintech,api,sdk,webhooks,form4api
9
+ Keywords: insider-trading,sec,sec-edgar,edgar,form-4,form4,form-144,13f,13f-hr,congress,stock-act,financial-data,stock-market,stocks,fintech,api,sdk,webhooks,form4api
10
10
  Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
@@ -19,7 +19,7 @@ Dynamic: license-file
19
19
 
20
20
  # form4api
21
21
 
22
- Python client for [Form4API](https://www.form4api.com) — real-time SEC Form 4 insider trading data.
22
+ Python client for [Form4API](https://www.form4api.com) — real-time SEC Form 4 insider trading, Form 144 intent-to-sell, institutional 13F-HR, and congressional STOCK Act trading data, including the insider/Congress convergence signal.
23
23
 
24
24
  [![PyPI version](https://img.shields.io/pypi/v/form4api.svg)](https://pypi.org/project/form4api/)
25
25
  [![PyPI downloads](https://img.shields.io/pypi/dm/form4api.svg)](https://pypi.org/project/form4api/)
@@ -108,16 +108,21 @@ For LLM workflows, `form4api-mcp` exposes the same endpoints as tools.
108
108
 
109
109
  ```python
110
110
  client.transactions.list(
111
- ticker="AAPL", # filter by ticker
111
+ ticker="AAPL", # filter by ticker — accepts up to 25 comma-separated symbols
112
112
  cik="0000320193", # or by company CIK
113
113
  insider_cik="...", # filter by insider CIK
114
114
  code="P", # transaction code: P=purchase, S=sale, A=grant, etc.
115
115
  from_date="2026-01-01",
116
116
  to_date="2026-12-31",
117
+ filed_from="2026-01-01", # filters on Filing.FiledAt (when it hit EDGAR), not the trade date
118
+ filed_to="2026-12-31",
117
119
  exclude_10b5=True, # omit trades filed under a Rule 10b5-1 plan
118
120
  per_page=100,
119
121
  page=1,
120
122
  )
123
+
124
+ # Multi-ticker lookup in one call
125
+ client.transactions.list(ticker="AAPL,MSFT,NVDA")
121
126
  ```
122
127
 
123
128
  ### Granular filtering (v0.4.0+)
@@ -166,6 +171,11 @@ client.transactions.list(min_shares=10_000, max_shares=100_000)
166
171
  | `is_derivative` | `bool` | Derivative security flag |
167
172
  | `transaction_date` | `str` | ISO datetime |
168
173
  | `period_of_report` | `str` | ISO datetime |
174
+ | `return1d`/`return1w`/`return1m`/`return3m`/`return6m` | `float \| None` | Forward return since the transaction date, as a fraction (0.109 = +10.9%); `None` until enough time/price data has elapsed |
175
+ | `value_quality` | `str \| None` | Confidence flag on `total_value`'s pricing source |
176
+ | `accepted_at` | `str \| None` | Precise UTC SEC-acceptance instant; `None` if not captured |
177
+ | `document_url` | `str \| None` | Public SEC document URL |
178
+ | `institutional_ownership` | `InstitutionalOwnership \| None` | Latest 13F institutional ownership snapshot for the ticker, when available |
169
179
 
170
180
  ### Company fields
171
181
 
@@ -1,25 +1,6 @@
1
- Metadata-Version: 2.4
2
- Name: form4api
3
- Version: 0.7.0
4
- Summary: Python client for the Form4API — real-time SEC Form 4 insider trading data
5
- License-Expression: MIT
6
- Project-URL: Homepage, https://www.form4api.com
7
- Project-URL: Documentation, https://www.form4api.com/docs
8
- Project-URL: Repository, https://github.com/theodor90/form4api-py.git
9
- Keywords: insider-trading,sec,sec-edgar,edgar,form-4,form4,form-144,13f,13f-hr,financial-data,stock-market,stocks,fintech,api,sdk,webhooks,form4api
10
- Requires-Python: >=3.11
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: httpx>=0.27
14
- Provides-Extra: dev
15
- Requires-Dist: pytest>=8; extra == "dev"
16
- Requires-Dist: pytest-httpx>=0.30; extra == "dev"
17
- Requires-Dist: respx>=0.21; extra == "dev"
18
- Dynamic: license-file
19
-
20
1
  # form4api
21
2
 
22
- Python client for [Form4API](https://www.form4api.com) — real-time SEC Form 4 insider trading data.
3
+ Python client for [Form4API](https://www.form4api.com) — real-time SEC Form 4 insider trading, Form 144 intent-to-sell, institutional 13F-HR, and congressional STOCK Act trading data, including the insider/Congress convergence signal.
23
4
 
24
5
  [![PyPI version](https://img.shields.io/pypi/v/form4api.svg)](https://pypi.org/project/form4api/)
25
6
  [![PyPI downloads](https://img.shields.io/pypi/dm/form4api.svg)](https://pypi.org/project/form4api/)
@@ -108,16 +89,21 @@ For LLM workflows, `form4api-mcp` exposes the same endpoints as tools.
108
89
 
109
90
  ```python
110
91
  client.transactions.list(
111
- ticker="AAPL", # filter by ticker
92
+ ticker="AAPL", # filter by ticker — accepts up to 25 comma-separated symbols
112
93
  cik="0000320193", # or by company CIK
113
94
  insider_cik="...", # filter by insider CIK
114
95
  code="P", # transaction code: P=purchase, S=sale, A=grant, etc.
115
96
  from_date="2026-01-01",
116
97
  to_date="2026-12-31",
98
+ filed_from="2026-01-01", # filters on Filing.FiledAt (when it hit EDGAR), not the trade date
99
+ filed_to="2026-12-31",
117
100
  exclude_10b5=True, # omit trades filed under a Rule 10b5-1 plan
118
101
  per_page=100,
119
102
  page=1,
120
103
  )
104
+
105
+ # Multi-ticker lookup in one call
106
+ client.transactions.list(ticker="AAPL,MSFT,NVDA")
121
107
  ```
122
108
 
123
109
  ### Granular filtering (v0.4.0+)
@@ -166,6 +152,11 @@ client.transactions.list(min_shares=10_000, max_shares=100_000)
166
152
  | `is_derivative` | `bool` | Derivative security flag |
167
153
  | `transaction_date` | `str` | ISO datetime |
168
154
  | `period_of_report` | `str` | ISO datetime |
155
+ | `return1d`/`return1w`/`return1m`/`return3m`/`return6m` | `float \| None` | Forward return since the transaction date, as a fraction (0.109 = +10.9%); `None` until enough time/price data has elapsed |
156
+ | `value_quality` | `str \| None` | Confidence flag on `total_value`'s pricing source |
157
+ | `accepted_at` | `str \| None` | Precise UTC SEC-acceptance instant; `None` if not captured |
158
+ | `document_url` | `str \| None` | Public SEC document URL |
159
+ | `institutional_ownership` | `InstitutionalOwnership \| None` | Latest 13F institutional ownership snapshot for the ticker, when available |
169
160
 
170
161
  ### Company fields
171
162
 
@@ -11,6 +11,8 @@ from form4api._types import (
11
11
  Company,
12
12
  Insider,
13
13
  InsiderSignal,
14
+ InstitutionalOwnership,
15
+ TopHolder,
14
16
  Transaction,
15
17
  WebhookCreated,
16
18
  WebhookEvent,
@@ -31,6 +33,8 @@ __all__ = [
31
33
  "Insider",
32
34
  "Company",
33
35
  "InsiderSignal",
36
+ "InstitutionalOwnership",
37
+ "TopHolder",
34
38
  "WebhookCreated",
35
39
  "WebhookEvent",
36
40
  "WebhookSubscription",