superkit-mcp-server 1.2.1 → 1.2.3

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 (170) hide show
  1. package/ARCHITECTURE.md +102 -102
  2. package/README.md +71 -71
  3. package/SUPERKIT.md +168 -168
  4. package/agents/code-archaeologist.md +106 -106
  5. package/agents/coder.md +90 -90
  6. package/agents/data-engineer.md +28 -28
  7. package/agents/devops-engineer.md +242 -242
  8. package/agents/git-manager.md +203 -203
  9. package/agents/orchestrator.md +420 -420
  10. package/agents/penetration-tester.md +188 -188
  11. package/agents/performance-optimizer.md +187 -187
  12. package/agents/planner.md +270 -270
  13. package/agents/qa-automation-engineer.md +103 -103
  14. package/agents/quant-developer.md +32 -32
  15. package/agents/reviewer.md +100 -100
  16. package/agents/scout.md +222 -222
  17. package/agents/security-auditor.md +3 -2
  18. package/agents/tester.md +274 -274
  19. package/agents/ui-designer.md +208 -208
  20. package/build/index.js +21 -2
  21. package/build/tools/__tests__/loggerTools.test.js +5 -5
  22. package/build/tools/archTools.js +2 -19
  23. package/build/tools/autoPreview.js +2 -2
  24. package/build/tools/compoundTools.js +4 -4
  25. package/build/tools/docsTools.js +5 -10
  26. package/build/tools/loggerTools.js +1 -1
  27. package/build/tools/todoTools.js +39 -39
  28. package/build/tools/validators/__tests__/apiSchema.test.js +23 -23
  29. package/build/tools/validators/__tests__/convertRules.test.js +5 -5
  30. package/build/tools/validators/__tests__/frontendDesign.test.js +12 -12
  31. package/build/tools/validators/__tests__/geoChecker.test.js +19 -19
  32. package/build/tools/validators/__tests__/mobileAudit.test.js +12 -12
  33. package/build/tools/validators/__tests__/reactPerformanceChecker.test.js +17 -17
  34. package/build/tools/validators/__tests__/securityScan.test.js +6 -6
  35. package/build/tools/validators/__tests__/seoChecker.test.js +16 -16
  36. package/build/tools/validators/__tests__/typeCoverage.test.js +14 -14
  37. package/build/tools/validators/convertRules.js +2 -2
  38. package/commands/README.md +122 -122
  39. package/commands/ask.toml +72 -72
  40. package/commands/brainstorm.toml +119 -119
  41. package/commands/chat.toml +77 -77
  42. package/commands/code-preview.toml +37 -37
  43. package/commands/code.toml +28 -28
  44. package/commands/content.toml +200 -200
  45. package/commands/cook.toml +77 -77
  46. package/commands/copywrite.toml +131 -131
  47. package/commands/db.toml +192 -192
  48. package/commands/debug.toml +166 -166
  49. package/commands/design.toml +158 -158
  50. package/commands/dev-rules.toml +14 -14
  51. package/commands/do.toml +117 -117
  52. package/commands/doc-rules.toml +14 -14
  53. package/commands/docs.toml +148 -148
  54. package/commands/fix.toml +440 -440
  55. package/commands/fullstack.toml +175 -175
  56. package/commands/git.toml +235 -235
  57. package/commands/help.toml +84 -84
  58. package/commands/integrate.toml +127 -127
  59. package/commands/journal.toml +136 -136
  60. package/commands/kit-setup.toml +40 -40
  61. package/commands/mcp.toml +183 -183
  62. package/commands/orchestration.toml +15 -15
  63. package/commands/plan.toml +171 -171
  64. package/commands/pm.toml +148 -148
  65. package/commands/pr.toml +50 -50
  66. package/commands/project.toml +32 -32
  67. package/commands/research.toml +117 -117
  68. package/commands/review-pr.toml +63 -63
  69. package/commands/review.toml +190 -190
  70. package/commands/scout-ext.toml +97 -97
  71. package/commands/scout.toml +79 -79
  72. package/commands/screenshot.toml +65 -65
  73. package/commands/session.toml +102 -102
  74. package/commands/skill.toml +384 -384
  75. package/commands/status.toml +22 -22
  76. package/commands/team.toml +56 -56
  77. package/commands/test.toml +164 -164
  78. package/commands/ticket.toml +70 -70
  79. package/commands/use.toml +106 -106
  80. package/commands/video.toml +83 -83
  81. package/commands/watzup.toml +71 -71
  82. package/commands/workflow.toml +14 -14
  83. package/package.json +35 -35
  84. package/skills/meta/README.md +30 -30
  85. package/skills/meta/api-design/SKILL.md +134 -134
  86. package/skills/meta/code-review/SKILL.md +44 -44
  87. package/skills/meta/code-review/checklists/pre-merge.md +25 -25
  88. package/skills/meta/code-review/workflows/architecture-pass.md +26 -26
  89. package/skills/meta/code-review/workflows/performance-pass.md +27 -27
  90. package/skills/meta/code-review/workflows/security-pass.md +29 -29
  91. package/skills/meta/compound-docs/SKILL.md +133 -133
  92. package/skills/meta/debug/SKILL.md +40 -40
  93. package/skills/meta/debug/templates/bug-report.template.md +31 -31
  94. package/skills/meta/debug/workflows/reproduce-issue.md +20 -20
  95. package/skills/meta/docker/SKILL.md +126 -126
  96. package/skills/meta/examples/supabase/SKILL.md +46 -46
  97. package/skills/meta/examples/supabase/references/best-practices.md +319 -319
  98. package/skills/meta/examples/supabase/references/common-patterns.md +373 -373
  99. package/skills/meta/examples/supabase/templates/migration-template.sql +49 -49
  100. package/skills/meta/examples/supabase/templates/rls-policy-template.sql +77 -77
  101. package/skills/meta/examples/supabase/workflows/debugging.md +260 -260
  102. package/skills/meta/examples/supabase/workflows/migration-workflow.md +211 -211
  103. package/skills/meta/examples/supabase/workflows/rls-policies.md +244 -244
  104. package/skills/meta/examples/supabase/workflows/schema-design.md +321 -321
  105. package/skills/meta/file-todos/SKILL.md +88 -88
  106. package/skills/meta/mobile/SKILL.md +140 -140
  107. package/skills/meta/nextjs/SKILL.md +101 -101
  108. package/skills/meta/performance/SKILL.md +130 -130
  109. package/skills/meta/react-patterns/SKILL.md +83 -83
  110. package/skills/meta/security/SKILL.md +114 -114
  111. package/skills/meta/session-resume/SKILL.md +96 -96
  112. package/skills/meta/tailwind/SKILL.md +139 -139
  113. package/skills/meta/testing/SKILL.md +43 -43
  114. package/skills/meta/testing/references/vitest-patterns.md +45 -45
  115. package/skills/meta/testing/templates/component-test.template.tsx +37 -37
  116. package/skills/tech/alpha-vantage/SKILL.md +142 -142
  117. package/skills/tech/alpha-vantage/references/commodities.md +153 -153
  118. package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -158
  119. package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -154
  120. package/skills/tech/alpha-vantage/references/fundamentals.md +223 -223
  121. package/skills/tech/alpha-vantage/references/intelligence.md +138 -138
  122. package/skills/tech/alpha-vantage/references/options.md +93 -93
  123. package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -374
  124. package/skills/tech/alpha-vantage/references/time-series.md +157 -157
  125. package/skills/tech/doc.md +6 -6
  126. package/skills/tech/financial-modeling/SKILL.md +18 -18
  127. package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -368
  128. package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -118
  129. package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -292
  130. package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -125
  131. package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1210 -1210
  132. package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -40
  133. package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -8
  134. package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -292
  135. package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -236
  136. package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -108
  137. package/skills/workflows/README.md +203 -203
  138. package/skills/workflows/adr.md +174 -174
  139. package/skills/workflows/changelog.md +74 -74
  140. package/skills/workflows/compound.md +323 -323
  141. package/skills/workflows/compound_health.md +74 -74
  142. package/skills/workflows/create-agent-skill.md +138 -139
  143. package/skills/workflows/cycle.md +144 -144
  144. package/skills/workflows/deploy-docs.md +84 -84
  145. package/skills/workflows/development-rules.md +42 -42
  146. package/skills/workflows/doc.md +95 -95
  147. package/skills/workflows/documentation-management.md +34 -34
  148. package/skills/workflows/explore.md +146 -146
  149. package/skills/workflows/generate_command.md +106 -106
  150. package/skills/workflows/heal-skill.md +97 -97
  151. package/skills/workflows/housekeeping.md +229 -229
  152. package/skills/workflows/kit-setup.md +102 -102
  153. package/skills/workflows/map-codebase.md +78 -78
  154. package/skills/workflows/orchestration-protocol.md +43 -43
  155. package/skills/workflows/plan-compound.md +439 -439
  156. package/skills/workflows/plan_review.md +269 -269
  157. package/skills/workflows/primary-workflow.md +37 -37
  158. package/skills/workflows/promote_pattern.md +86 -86
  159. package/skills/workflows/release-docs.md +82 -82
  160. package/skills/workflows/report-bug.md +135 -135
  161. package/skills/workflows/reproduce-bug.md +118 -118
  162. package/skills/workflows/resolve_pr.md +133 -133
  163. package/skills/workflows/resolve_todo.md +128 -128
  164. package/skills/workflows/review-compound.md +376 -376
  165. package/skills/workflows/skill-review.md +127 -127
  166. package/skills/workflows/specs.md +257 -257
  167. package/skills/workflows/triage-sprint.md +102 -102
  168. package/skills/workflows/triage.md +152 -152
  169. package/skills/workflows/work.md +399 -399
  170. package/skills/workflows/xcode-test.md +93 -93
@@ -1,223 +1,223 @@
1
- # Fundamental Data APIs
2
-
3
- ## OVERVIEW — Company Overview
4
-
5
- Returns key company information, valuation metrics, and financial ratios.
6
-
7
- **Required:** `symbol`
8
-
9
- ```python
10
- data = av_get("OVERVIEW", symbol="AAPL")
11
-
12
- # Key fields returned:
13
- # "Symbol", "AssetType", "Name", "Description", "Exchange", "Currency"
14
- # "Country", "Sector", "Industry", "Address"
15
- # "MarketCapitalization", "EBITDA", "PERatio", "PEGRatio"
16
- # "BookValue", "DividendPerShare", "DividendYield", "EPS"
17
- # "RevenuePerShareTTM", "ProfitMargin", "OperatingMarginTTM"
18
- # "ReturnOnAssetsTTM", "ReturnOnEquityTTM"
19
- # "RevenueTTM", "GrossProfitTTM", "DilutedEPSTTM"
20
- # "QuarterlyEarningsGrowthYOY", "QuarterlyRevenueGrowthYOY"
21
- # "AnalystTargetPrice", "AnalystRatingStrongBuy", "AnalystRatingBuy",
22
- # "AnalystRatingHold", "AnalystRatingSell", "AnalystRatingStrongSell"
23
- # "TrailingPE", "ForwardPE", "PriceToSalesRatioTTM"
24
- # "PriceToBookRatio", "EVToRevenue", "EVToEBITDA"
25
- # "Beta", "52WeekHigh", "52WeekLow", "50DayMovingAverage", "200DayMovingAverage"
26
- # "SharesOutstanding", "DividendDate", "ExDividendDate", "FiscalYearEnd"
27
-
28
- print(data["MarketCapitalization"]) # "2850000000000"
29
- print(data["PERatio"]) # "29.50"
30
- print(data["Sector"]) # "TECHNOLOGY"
31
- ```
32
-
33
- ## ETF_PROFILE — ETF Profile & Holdings
34
-
35
- **Required:** `symbol`
36
-
37
- ```python
38
- data = av_get("ETF_PROFILE", symbol="QQQ")
39
- # Fields: "net_assets", "nav", "inception_date", "description",
40
- # "asset_allocation" (stocks/bonds/cash/etc.)
41
- # "sectors" (list of sector weights)
42
- # "holdings" (top holdings list)
43
- for h in data["holdings"][:5]:
44
- print(h["symbol"], h["description"], h["weight"])
45
- ```
46
-
47
- ## DIVIDENDS — Corporate Dividend History
48
-
49
- **Required:** `symbol`
50
-
51
- ```python
52
- data = av_get("DIVIDENDS", symbol="IBM")
53
- divs = data["data"]
54
- for d in divs:
55
- print(d["ex_dividend_date"], d["amount"])
56
- # Fields per record: "ex_dividend_date", "declaration_date",
57
- # "record_date", "payment_date", "amount"
58
- ```
59
-
60
- ## SPLITS — Stock Split History
61
-
62
- **Required:** `symbol`
63
-
64
- ```python
65
- data = av_get("SPLITS", symbol="AAPL")
66
- splits = data["data"]
67
- for s in splits:
68
- print(s["effective_date"], s["split_factor"])
69
- # Fields: "effective_date", "split_factor" (e.g., "4/1" for 4-for-1 split)
70
- ```
71
-
72
- ## INCOME_STATEMENT — Income Statement
73
-
74
- Returns annual and quarterly income statements.
75
-
76
- **Required:** `symbol`
77
-
78
- ```python
79
- data = av_get("INCOME_STATEMENT", symbol="IBM")
80
- annual = data["annualReports"] # list, most recent first
81
- quarterly = data["quarterlyReports"] # list, most recent first
82
-
83
- yr = annual[0] # Most recent fiscal year
84
- print(yr["fiscalDateEnding"]) # "2023-12-31"
85
- print(yr["totalRevenue"]) # "61860000000"
86
- print(yr["grossProfit"]) # "32688000000"
87
- print(yr["operatingIncome"]) # "..."
88
- print(yr["netIncome"]) # "..."
89
- print(yr["ebitda"]) # "..."
90
- # Other keys: "reportedCurrency", "costOfRevenue", "costofGoodsAndServicesSold",
91
- # "sellingGeneralAndAdministrative", "researchAndDevelopment",
92
- # "operatingExpenses", "investmentIncomeNet", "netInterestIncome",
93
- # "interestIncome", "interestExpense", "nonInterestIncome",
94
- # "otherNonOperatingIncome", "depreciation",
95
- # "depreciationAndAmortization", "incomeBeforeTax",
96
- # "incomeTaxExpense", "interestAndDebtExpense",
97
- # "netIncomeFromContinuingOperations", "comprehensiveIncomeNetOfTax",
98
- # "ebit", "dilutedEPS", "basicEPS"
99
- ```
100
-
101
- ## BALANCE_SHEET — Balance Sheet
102
-
103
- **Required:** `symbol`
104
-
105
- ```python
106
- data = av_get("BALANCE_SHEET", symbol="IBM")
107
- annual = data["annualReports"]
108
-
109
- yr = annual[0]
110
- print(yr["totalAssets"]) # "..."
111
- print(yr["totalLiabilities"]) # "..."
112
- print(yr["totalShareholderEquity"]) # "..."
113
- # Other keys: "reportedCurrency", "fiscalDateEnding",
114
- # "cashAndCashEquivalentsAtCarryingValue", "cashAndShortTermInvestments",
115
- # "inventory", "currentNetReceivables", "totalCurrentAssets",
116
- # "propertyPlantEquipmentNet", "intangibleAssets",
117
- # "intangibleAssetsExcludingGoodwill", "goodwill", "investments",
118
- # "longTermInvestments", "shortTermInvestments", "otherCurrentAssets",
119
- # "otherNonCurrrentAssets", "currentAccountsPayable", "deferredRevenue",
120
- # "currentDebt", "shortTermDebt", "totalCurrentLiabilities",
121
- # "capitalLeaseObligations", "longTermDebt", "currentLongTermDebt",
122
- # "longTermDebtNoncurrent", "shortLongTermDebtTotal",
123
- # "otherCurrentLiabilities", "otherNonCurrentLiabilities",
124
- # "totalNonCurrentLiabilities", "retainedEarnings",
125
- # "additionalPaidInCapital", "commonStockSharesOutstanding"
126
- ```
127
-
128
- ## CASH_FLOW — Cash Flow Statement
129
-
130
- **Required:** `symbol`
131
-
132
- ```python
133
- data = av_get("CASH_FLOW", symbol="IBM")
134
- annual = data["annualReports"]
135
-
136
- yr = annual[0]
137
- print(yr["operatingCashflow"]) # "..."
138
- print(yr["capitalExpenditures"]) # "..."
139
- print(yr["cashflowFromInvestment"]) # "..."
140
- print(yr["cashflowFromFinancing"]) # "..."
141
- # Other keys: "reportedCurrency", "fiscalDateEnding",
142
- # "paymentsForRepurchaseOfCommonStock", "dividendPayout",
143
- # "dividendPayoutCommonStock", "dividendPayoutPreferredStock",
144
- # "proceedsFromIssuanceOfCommonStock", "changeInOperatingLiabilities",
145
- # "changeInOperatingAssets", "depreciationDepletionAndAmortization",
146
- # "capitalExpenditures", "changeInReceivables", "changeInInventory",
147
- # "profitLoss", "netIncomeFromContinuingOperations"
148
- ```
149
-
150
- ## SHARES_OUTSTANDING — Shares Outstanding History
151
-
152
- **Required:** `symbol`
153
-
154
- ```python
155
- data = av_get("SHARES_OUTSTANDING", symbol="AAPL")
156
- shares = data["data"]
157
- for s in shares[:5]:
158
- print(s["date"], s["reportedShares"])
159
- ```
160
-
161
- ## EARNINGS — Earnings History (EPS)
162
-
163
- Returns annual and quarterly EPS + surprise data.
164
-
165
- **Required:** `symbol`
166
-
167
- ```python
168
- data = av_get("EARNINGS", symbol="IBM")
169
- annual = data["annualEarnings"]
170
- quarterly = data["quarterlyEarnings"]
171
-
172
- # Annual: "fiscalDateEnding", "reportedEPS"
173
- # Quarterly: "fiscalDateEnding", "reportedDate", "reportedEPS",
174
- # "estimatedEPS", "surprise", "surprisePercentage"
175
- q = quarterly[0]
176
- print(q["reportedEPS"], q["estimatedEPS"], q["surprisePercentage"])
177
- ```
178
-
179
- ## EARNINGS_CALENDAR — Upcoming Earnings Dates
180
-
181
- Returns earnings release schedule for the next 3-12 months.
182
-
183
- **Optional:** `symbol` (if omitted, returns all companies), `horizon` (`3month`, `6month`, `12month`)
184
-
185
- ```python
186
- # Returns CSV format - use requests directly
187
- import requests, csv, io, os
188
- resp = requests.get(
189
- "https://www.alphavantage.co/query",
190
- params={"function": "EARNINGS_CALENDAR", "symbol": "IBM", "apikey": os.environ["ALPHAVANTAGE_API_KEY"]}
191
- )
192
- reader = csv.DictReader(io.StringIO(resp.text))
193
- for row in reader:
194
- print(row["symbol"], row["name"], row["reportDate"], row["estimate"])
195
- ```
196
-
197
- ## LISTING_STATUS — Listed/Delisted Tickers
198
-
199
- **Optional:** `date` (format `YYYY-MM-DD`), `state` (`active` or `delisted`)
200
-
201
- ```python
202
- # Returns CSV
203
- resp = requests.get(
204
- "https://www.alphavantage.co/query",
205
- params={"function": "LISTING_STATUS", "state": "active", "apikey": API_KEY}
206
- )
207
- reader = csv.DictReader(io.StringIO(resp.text))
208
- # Fields: "symbol", "name", "exchange", "assetType", "ipoDate",
209
- # "delistingDate", "status"
210
- ```
211
-
212
- ## IPO_CALENDAR — Upcoming IPOs
213
-
214
- ```python
215
- # Returns CSV
216
- resp = requests.get(
217
- "https://www.alphavantage.co/query",
218
- params={"function": "IPO_CALENDAR", "apikey": API_KEY}
219
- )
220
- reader = csv.DictReader(io.StringIO(resp.text))
221
- for row in reader:
222
- print(row["symbol"], row["name"], row["ipoDate"], row["priceRangeLow"], row["priceRangeHigh"])
223
- ```
1
+ # Fundamental Data APIs
2
+
3
+ ## OVERVIEW — Company Overview
4
+
5
+ Returns key company information, valuation metrics, and financial ratios.
6
+
7
+ **Required:** `symbol`
8
+
9
+ ```python
10
+ data = av_get("OVERVIEW", symbol="AAPL")
11
+
12
+ # Key fields returned:
13
+ # "Symbol", "AssetType", "Name", "Description", "Exchange", "Currency"
14
+ # "Country", "Sector", "Industry", "Address"
15
+ # "MarketCapitalization", "EBITDA", "PERatio", "PEGRatio"
16
+ # "BookValue", "DividendPerShare", "DividendYield", "EPS"
17
+ # "RevenuePerShareTTM", "ProfitMargin", "OperatingMarginTTM"
18
+ # "ReturnOnAssetsTTM", "ReturnOnEquityTTM"
19
+ # "RevenueTTM", "GrossProfitTTM", "DilutedEPSTTM"
20
+ # "QuarterlyEarningsGrowthYOY", "QuarterlyRevenueGrowthYOY"
21
+ # "AnalystTargetPrice", "AnalystRatingStrongBuy", "AnalystRatingBuy",
22
+ # "AnalystRatingHold", "AnalystRatingSell", "AnalystRatingStrongSell"
23
+ # "TrailingPE", "ForwardPE", "PriceToSalesRatioTTM"
24
+ # "PriceToBookRatio", "EVToRevenue", "EVToEBITDA"
25
+ # "Beta", "52WeekHigh", "52WeekLow", "50DayMovingAverage", "200DayMovingAverage"
26
+ # "SharesOutstanding", "DividendDate", "ExDividendDate", "FiscalYearEnd"
27
+
28
+ print(data["MarketCapitalization"]) # "2850000000000"
29
+ print(data["PERatio"]) # "29.50"
30
+ print(data["Sector"]) # "TECHNOLOGY"
31
+ ```
32
+
33
+ ## ETF_PROFILE — ETF Profile & Holdings
34
+
35
+ **Required:** `symbol`
36
+
37
+ ```python
38
+ data = av_get("ETF_PROFILE", symbol="QQQ")
39
+ # Fields: "net_assets", "nav", "inception_date", "description",
40
+ # "asset_allocation" (stocks/bonds/cash/etc.)
41
+ # "sectors" (list of sector weights)
42
+ # "holdings" (top holdings list)
43
+ for h in data["holdings"][:5]:
44
+ print(h["symbol"], h["description"], h["weight"])
45
+ ```
46
+
47
+ ## DIVIDENDS — Corporate Dividend History
48
+
49
+ **Required:** `symbol`
50
+
51
+ ```python
52
+ data = av_get("DIVIDENDS", symbol="IBM")
53
+ divs = data["data"]
54
+ for d in divs:
55
+ print(d["ex_dividend_date"], d["amount"])
56
+ # Fields per record: "ex_dividend_date", "declaration_date",
57
+ # "record_date", "payment_date", "amount"
58
+ ```
59
+
60
+ ## SPLITS — Stock Split History
61
+
62
+ **Required:** `symbol`
63
+
64
+ ```python
65
+ data = av_get("SPLITS", symbol="AAPL")
66
+ splits = data["data"]
67
+ for s in splits:
68
+ print(s["effective_date"], s["split_factor"])
69
+ # Fields: "effective_date", "split_factor" (e.g., "4/1" for 4-for-1 split)
70
+ ```
71
+
72
+ ## INCOME_STATEMENT — Income Statement
73
+
74
+ Returns annual and quarterly income statements.
75
+
76
+ **Required:** `symbol`
77
+
78
+ ```python
79
+ data = av_get("INCOME_STATEMENT", symbol="IBM")
80
+ annual = data["annualReports"] # list, most recent first
81
+ quarterly = data["quarterlyReports"] # list, most recent first
82
+
83
+ yr = annual[0] # Most recent fiscal year
84
+ print(yr["fiscalDateEnding"]) # "2023-12-31"
85
+ print(yr["totalRevenue"]) # "61860000000"
86
+ print(yr["grossProfit"]) # "32688000000"
87
+ print(yr["operatingIncome"]) # "..."
88
+ print(yr["netIncome"]) # "..."
89
+ print(yr["ebitda"]) # "..."
90
+ # Other keys: "reportedCurrency", "costOfRevenue", "costofGoodsAndServicesSold",
91
+ # "sellingGeneralAndAdministrative", "researchAndDevelopment",
92
+ # "operatingExpenses", "investmentIncomeNet", "netInterestIncome",
93
+ # "interestIncome", "interestExpense", "nonInterestIncome",
94
+ # "otherNonOperatingIncome", "depreciation",
95
+ # "depreciationAndAmortization", "incomeBeforeTax",
96
+ # "incomeTaxExpense", "interestAndDebtExpense",
97
+ # "netIncomeFromContinuingOperations", "comprehensiveIncomeNetOfTax",
98
+ # "ebit", "dilutedEPS", "basicEPS"
99
+ ```
100
+
101
+ ## BALANCE_SHEET — Balance Sheet
102
+
103
+ **Required:** `symbol`
104
+
105
+ ```python
106
+ data = av_get("BALANCE_SHEET", symbol="IBM")
107
+ annual = data["annualReports"]
108
+
109
+ yr = annual[0]
110
+ print(yr["totalAssets"]) # "..."
111
+ print(yr["totalLiabilities"]) # "..."
112
+ print(yr["totalShareholderEquity"]) # "..."
113
+ # Other keys: "reportedCurrency", "fiscalDateEnding",
114
+ # "cashAndCashEquivalentsAtCarryingValue", "cashAndShortTermInvestments",
115
+ # "inventory", "currentNetReceivables", "totalCurrentAssets",
116
+ # "propertyPlantEquipmentNet", "intangibleAssets",
117
+ # "intangibleAssetsExcludingGoodwill", "goodwill", "investments",
118
+ # "longTermInvestments", "shortTermInvestments", "otherCurrentAssets",
119
+ # "otherNonCurrrentAssets", "currentAccountsPayable", "deferredRevenue",
120
+ # "currentDebt", "shortTermDebt", "totalCurrentLiabilities",
121
+ # "capitalLeaseObligations", "longTermDebt", "currentLongTermDebt",
122
+ # "longTermDebtNoncurrent", "shortLongTermDebtTotal",
123
+ # "otherCurrentLiabilities", "otherNonCurrentLiabilities",
124
+ # "totalNonCurrentLiabilities", "retainedEarnings",
125
+ # "additionalPaidInCapital", "commonStockSharesOutstanding"
126
+ ```
127
+
128
+ ## CASH_FLOW — Cash Flow Statement
129
+
130
+ **Required:** `symbol`
131
+
132
+ ```python
133
+ data = av_get("CASH_FLOW", symbol="IBM")
134
+ annual = data["annualReports"]
135
+
136
+ yr = annual[0]
137
+ print(yr["operatingCashflow"]) # "..."
138
+ print(yr["capitalExpenditures"]) # "..."
139
+ print(yr["cashflowFromInvestment"]) # "..."
140
+ print(yr["cashflowFromFinancing"]) # "..."
141
+ # Other keys: "reportedCurrency", "fiscalDateEnding",
142
+ # "paymentsForRepurchaseOfCommonStock", "dividendPayout",
143
+ # "dividendPayoutCommonStock", "dividendPayoutPreferredStock",
144
+ # "proceedsFromIssuanceOfCommonStock", "changeInOperatingLiabilities",
145
+ # "changeInOperatingAssets", "depreciationDepletionAndAmortization",
146
+ # "capitalExpenditures", "changeInReceivables", "changeInInventory",
147
+ # "profitLoss", "netIncomeFromContinuingOperations"
148
+ ```
149
+
150
+ ## SHARES_OUTSTANDING — Shares Outstanding History
151
+
152
+ **Required:** `symbol`
153
+
154
+ ```python
155
+ data = av_get("SHARES_OUTSTANDING", symbol="AAPL")
156
+ shares = data["data"]
157
+ for s in shares[:5]:
158
+ print(s["date"], s["reportedShares"])
159
+ ```
160
+
161
+ ## EARNINGS — Earnings History (EPS)
162
+
163
+ Returns annual and quarterly EPS + surprise data.
164
+
165
+ **Required:** `symbol`
166
+
167
+ ```python
168
+ data = av_get("EARNINGS", symbol="IBM")
169
+ annual = data["annualEarnings"]
170
+ quarterly = data["quarterlyEarnings"]
171
+
172
+ # Annual: "fiscalDateEnding", "reportedEPS"
173
+ # Quarterly: "fiscalDateEnding", "reportedDate", "reportedEPS",
174
+ # "estimatedEPS", "surprise", "surprisePercentage"
175
+ q = quarterly[0]
176
+ print(q["reportedEPS"], q["estimatedEPS"], q["surprisePercentage"])
177
+ ```
178
+
179
+ ## EARNINGS_CALENDAR — Upcoming Earnings Dates
180
+
181
+ Returns earnings release schedule for the next 3-12 months.
182
+
183
+ **Optional:** `symbol` (if omitted, returns all companies), `horizon` (`3month`, `6month`, `12month`)
184
+
185
+ ```python
186
+ # Returns CSV format - use requests directly
187
+ import requests, csv, io, os
188
+ resp = requests.get(
189
+ "https://www.alphavantage.co/query",
190
+ params={"function": "EARNINGS_CALENDAR", "symbol": "IBM", "apikey": os.environ["ALPHAVANTAGE_API_KEY"]}
191
+ )
192
+ reader = csv.DictReader(io.StringIO(resp.text))
193
+ for row in reader:
194
+ print(row["symbol"], row["name"], row["reportDate"], row["estimate"])
195
+ ```
196
+
197
+ ## LISTING_STATUS — Listed/Delisted Tickers
198
+
199
+ **Optional:** `date` (format `YYYY-MM-DD`), `state` (`active` or `delisted`)
200
+
201
+ ```python
202
+ # Returns CSV
203
+ resp = requests.get(
204
+ "https://www.alphavantage.co/query",
205
+ params={"function": "LISTING_STATUS", "state": "active", "apikey": API_KEY}
206
+ )
207
+ reader = csv.DictReader(io.StringIO(resp.text))
208
+ # Fields: "symbol", "name", "exchange", "assetType", "ipoDate",
209
+ # "delistingDate", "status"
210
+ ```
211
+
212
+ ## IPO_CALENDAR — Upcoming IPOs
213
+
214
+ ```python
215
+ # Returns CSV
216
+ resp = requests.get(
217
+ "https://www.alphavantage.co/query",
218
+ params={"function": "IPO_CALENDAR", "apikey": API_KEY}
219
+ )
220
+ reader = csv.DictReader(io.StringIO(resp.text))
221
+ for row in reader:
222
+ print(row["symbol"], row["name"], row["ipoDate"], row["priceRangeLow"], row["priceRangeHigh"])
223
+ ```