@apteva/integrations 0.2.3 → 0.3.1

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 (236) hide show
  1. package/package.json +1 -1
  2. package/src/apps/activecampaign.json +209 -0
  3. package/src/apps/activecollab.json +417 -0
  4. package/src/apps/airtable.json +235 -0
  5. package/src/apps/alpaca-trading.json +1554 -0
  6. package/src/apps/amadeus.json +225 -0
  7. package/src/apps/anthropic-api.json +96 -0
  8. package/src/apps/apify.json +203 -0
  9. package/src/apps/apollo.json +748 -0
  10. package/src/apps/apple-podcasts.json +116 -0
  11. package/src/apps/archive-api.json +104 -0
  12. package/src/apps/archive.json +151 -0
  13. package/src/apps/arduino-cloud.json +301 -0
  14. package/src/apps/arest.json +492 -0
  15. package/src/apps/asana.json +184 -0
  16. package/src/apps/ashby.json +176 -0
  17. package/src/apps/assemblyai.json +163 -0
  18. package/src/apps/attio.json +243 -0
  19. package/src/apps/aws-cloudfront.json +132 -0
  20. package/src/apps/aws-dynamodb.json +295 -0
  21. package/src/apps/aws-ec2.json +184 -0
  22. package/src/apps/aws-lambda.json +361 -0
  23. package/src/apps/aws-route53.json +110 -0
  24. package/src/apps/aws-s3.json +303 -0
  25. package/src/apps/aws-ses.json +556 -0
  26. package/src/apps/aws-sns.json +217 -0
  27. package/src/apps/aws-sqs.json +234 -0
  28. package/src/apps/axiom.json +123 -0
  29. package/src/apps/beehiiv.json +252 -0
  30. package/src/apps/binance-trading.json +555 -0
  31. package/src/apps/bitly.json +175 -0
  32. package/src/apps/bloobirds.json +246 -0
  33. package/src/apps/bluesky.json +201 -0
  34. package/src/apps/blynk.json +316 -0
  35. package/src/apps/booking-com.json +144 -0
  36. package/src/apps/box.json +289 -0
  37. package/src/apps/brevo.json +1423 -0
  38. package/src/apps/browse-ai.json +148 -0
  39. package/src/apps/bunny-cdn.json +330 -0
  40. package/src/apps/bunny-stream.json +387 -0
  41. package/src/apps/cal-com.json +240 -0
  42. package/src/apps/calendly.json +578 -0
  43. package/src/apps/calflow-calendar.json +706 -0
  44. package/src/apps/callrail.json +190 -0
  45. package/src/apps/canva.json +197 -0
  46. package/src/apps/cartesia.json +201 -0
  47. package/src/apps/castbase.json +753 -0
  48. package/src/apps/chargebee.json +226 -0
  49. package/src/apps/cleanster.json +359 -0
  50. package/src/apps/clicksend.json +278 -0
  51. package/src/apps/clickup.json +266 -0
  52. package/src/apps/clipkit.json +517 -0
  53. package/src/apps/close.json +359 -0
  54. package/src/apps/cloudflare.json +329 -0
  55. package/src/apps/cloudinary.json +164 -0
  56. package/src/apps/coda.json +288 -0
  57. package/src/apps/cohere.json +158 -0
  58. package/src/apps/coinbase.json +268 -0
  59. package/src/apps/composio.json +146 -0
  60. package/src/apps/confluence.json +270 -0
  61. package/src/apps/consensus.json +879 -0
  62. package/src/apps/contabo.json +733 -0
  63. package/src/apps/convertkit.json +211 -0
  64. package/src/apps/core-image.json +426 -0
  65. package/src/apps/core-video.json +1246 -0
  66. package/src/apps/craftcloud.json +298 -0
  67. package/src/apps/datadog.json +401 -0
  68. package/src/apps/dataforseo.json +1273 -0
  69. package/src/apps/deepseek.json +150 -0
  70. package/src/apps/dialpad.json +229 -0
  71. package/src/apps/discord.json +239 -0
  72. package/src/apps/dnsimple.json +405 -0
  73. package/src/apps/docusign.json +214 -0
  74. package/src/apps/docx.json +282 -0
  75. package/src/apps/dropbox.json +185 -0
  76. package/src/apps/duffel.json +231 -0
  77. package/src/apps/dux-soup.json +694 -0
  78. package/src/apps/dynadot.json +250 -0
  79. package/src/apps/elevenlabs.json +327 -0
  80. package/src/apps/eventbrite-events.json +598 -0
  81. package/src/apps/facebook-ads.json +1399 -0
  82. package/src/apps/facebook-api.json +282 -0
  83. package/src/apps/fal-ai.json +400 -0
  84. package/src/apps/fathom.json +86 -0
  85. package/src/apps/figma.json +162 -0
  86. package/src/apps/filestack.json +159 -0
  87. package/src/apps/firebase.json +271 -0
  88. package/src/apps/firecrawl.json +278 -0
  89. package/src/apps/folk.json +564 -0
  90. package/src/apps/forecast-app.json +377 -0
  91. package/src/apps/freshdesk.json +283 -0
  92. package/src/apps/gemini.json +528 -0
  93. package/src/apps/ghost.json +439 -0
  94. package/src/apps/gigs-marketplace.json +1442 -0
  95. package/src/apps/github.json +1479 -47
  96. package/src/apps/gitlab.json +448 -0
  97. package/src/apps/gmail.json +839 -28
  98. package/src/apps/gohighlevel.json +596 -0
  99. package/src/apps/google-ads.json +270 -0
  100. package/src/apps/google-calendar.json +996 -36
  101. package/src/apps/google-docs.json +278 -0
  102. package/src/apps/google-drive.json +360 -0
  103. package/src/apps/google-maps.json +473 -0
  104. package/src/apps/google-sheets.json +330 -0
  105. package/src/apps/gooten.json +411 -0
  106. package/src/apps/gravity-forms.json +385 -0
  107. package/src/apps/gusto.json +171 -0
  108. package/src/apps/hackernews.json +221 -0
  109. package/src/apps/harmonic.json +86 -0
  110. package/src/apps/helpscout.json +664 -0
  111. package/src/apps/hetzner.json +658 -0
  112. package/src/apps/heygen.json +184 -0
  113. package/src/apps/heyreach.json +388 -0
  114. package/src/apps/hospitable.json +340 -0
  115. package/src/apps/hostinger.json +374 -0
  116. package/src/apps/hubspot.json +682 -0
  117. package/src/apps/huggingface.json +97 -0
  118. package/src/apps/hunter.json +504 -0
  119. package/src/apps/ig-trading.json +849 -0
  120. package/src/apps/imaterialise.json +349 -0
  121. package/src/apps/instagram-api.json +538 -0
  122. package/src/apps/intercom.json +648 -0
  123. package/src/apps/jira.json +226 -0
  124. package/src/apps/klaviyo.json +199 -0
  125. package/src/apps/kling-ai.json +206 -0
  126. package/src/apps/kraken.json +870 -0
  127. package/src/apps/late.json +1056 -0
  128. package/src/apps/leadpages.json +243 -0
  129. package/src/apps/learning-platform.json +2244 -0
  130. package/src/apps/linear.json +184 -57
  131. package/src/apps/linkedin.json +179 -0
  132. package/src/apps/listen-notes.json +136 -0
  133. package/src/apps/lnk-bio.json +125 -0
  134. package/src/apps/loom.json +188 -0
  135. package/src/apps/luma.json +280 -0
  136. package/src/apps/mailchimp.json +238 -0
  137. package/src/apps/mailgun.json +310 -0
  138. package/src/apps/manychat.json +312 -0
  139. package/src/apps/marin-software.json +843 -0
  140. package/src/apps/media-downloader.json +157 -0
  141. package/src/apps/meetup-events.json +361 -0
  142. package/src/apps/meshy.json +248 -0
  143. package/src/apps/microsoft-teams.json +162 -0
  144. package/src/apps/monday.json +213 -0
  145. package/src/apps/mongodb-atlas.json +467 -0
  146. package/src/apps/namecheap.json +252 -0
  147. package/src/apps/nexar.json +289 -0
  148. package/src/apps/notion.json +530 -50
  149. package/src/apps/omnikit-analytics.json +374 -0
  150. package/src/apps/omnikit-api-gateway.json +660 -0
  151. package/src/apps/omnikit-billing.json +1781 -0
  152. package/src/apps/omnikit-cms.json +899 -0
  153. package/src/apps/omnikit-functions.json +329 -0
  154. package/src/apps/omnikit-intelligence.json +650 -0
  155. package/src/apps/omnikit-management.json +214 -0
  156. package/src/apps/omnikit-media.json +646 -0
  157. package/src/apps/omnikit-messaging.json +1826 -0
  158. package/src/apps/omnikit-redirects.json +209 -0
  159. package/src/apps/omnikit-webhooks.json +269 -0
  160. package/src/apps/omnikit-workflows.json +323 -0
  161. package/src/apps/openai-api.json +462 -0
  162. package/src/apps/openmeteo-weather.json +75 -0
  163. package/src/apps/optinmonster.json +244 -0
  164. package/src/apps/paidkit.json +1218 -0
  165. package/src/apps/paypal.json +254 -0
  166. package/src/apps/pdf.json +366 -0
  167. package/src/apps/pipedrive.json +255 -0
  168. package/src/apps/polymarket.json +653 -0
  169. package/src/apps/porkbun.json +417 -0
  170. package/src/apps/portfolio.json +501 -0
  171. package/src/apps/postmark.json +257 -0
  172. package/src/apps/printful.json +273 -0
  173. package/src/apps/printify.json +295 -0
  174. package/src/apps/producthunt.json +346 -0
  175. package/src/apps/pushover-notifications.json +113 -0
  176. package/src/apps/qonto.json +366 -0
  177. package/src/apps/quickbooks.json +234 -0
  178. package/src/apps/replicate.json +106 -0
  179. package/src/apps/rss.json +281 -0
  180. package/src/apps/salesflow.json +538 -0
  181. package/src/apps/salesforce-crm.json +216 -0
  182. package/src/apps/sap.json +256 -0
  183. package/src/apps/scaleway.json +911 -0
  184. package/src/apps/sculpteo.json +234 -0
  185. package/src/apps/sendgrid-email.json +233 -0
  186. package/src/apps/sendgrid.json +160 -35
  187. package/src/apps/shapeways.json +188 -0
  188. package/src/apps/shopify.json +1217 -0
  189. package/src/apps/skai.json +779 -0
  190. package/src/apps/slack.json +228 -38
  191. package/src/apps/slant3d.json +231 -0
  192. package/src/apps/slides.json +760 -0
  193. package/src/apps/smartly.json +504 -0
  194. package/src/apps/snov.json +467 -0
  195. package/src/apps/socialcast.json +553 -63
  196. package/src/apps/square.json +274 -0
  197. package/src/apps/storage-management.json +788 -0
  198. package/src/apps/storylane.json +180 -0
  199. package/src/apps/strapi.json +338 -0
  200. package/src/apps/stripe-payments.json +847 -0
  201. package/src/apps/stripe.json +472 -35
  202. package/src/apps/supabase.json +169 -0
  203. package/src/apps/supademo.json +115 -0
  204. package/src/apps/taskflow.json +714 -0
  205. package/src/apps/teamwork.json +457 -0
  206. package/src/apps/telegram.json +444 -0
  207. package/src/apps/thinger.json +458 -0
  208. package/src/apps/ticktick.json +169 -0
  209. package/src/apps/tiktok-api.json +406 -0
  210. package/src/apps/todoist.json +151 -0
  211. package/src/apps/together.json +123 -0
  212. package/src/apps/torrent.json +267 -0
  213. package/src/apps/trading.json +1012 -0
  214. package/src/apps/trading212.json +383 -0
  215. package/src/apps/trello.json +205 -0
  216. package/src/apps/tripo.json +157 -0
  217. package/src/apps/twilio.json +1008 -0
  218. package/src/apps/twitter-ads.json +875 -0
  219. package/src/apps/twitter-api.json +1151 -0
  220. package/src/apps/twitterapiio.json +548 -0
  221. package/src/apps/typeform.json +210 -0
  222. package/src/apps/vidforge.json +1020 -0
  223. package/src/apps/vonage.json +394 -0
  224. package/src/apps/vultr.json +225 -0
  225. package/src/apps/webflow.json +223 -0
  226. package/src/apps/wise.json +273 -0
  227. package/src/apps/wistia.json +283 -0
  228. package/src/apps/woocommerce.json +288 -0
  229. package/src/apps/wordpress.json +1675 -0
  230. package/src/apps/xero.json +257 -0
  231. package/src/apps/youtube-api.json +861 -0
  232. package/src/apps/zendesk.json +295 -0
  233. package/src/apps/zite.json +173 -0
  234. package/src/apps/zoho-crm.json +386 -0
  235. package/src/apps/zoo.json +193 -0
  236. package/src/apps/zoom.json +334 -0
@@ -0,0 +1,501 @@
1
+ {
2
+ "slug": "portfolio",
3
+ "name": "Portfolio Management",
4
+ "description": "Investment portfolio management - track portfolios, holdings, transactions, and search/browse dividend stocks",
5
+ "logo": "https://www.google.com/s2/favicons?domain=dividend.watch&sz=128",
6
+ "categories": [
7
+ "portfolio",
8
+ "investments",
9
+ "holdings",
10
+ "transactions",
11
+ "assets",
12
+ "stocks",
13
+ "dividends"
14
+ ],
15
+ "base_url": "",
16
+ "auth": {
17
+ "types": [
18
+ "api_key"
19
+ ],
20
+ "headers": {
21
+ "X-API-Key": "{{token}}"
22
+ },
23
+ "credential_fields": [
24
+ {
25
+ "name": "token",
26
+ "label": "Api Key",
27
+ "description": "Your Portfolio Platform API key"
28
+ },
29
+ {
30
+ "name": "userId",
31
+ "label": "User Id",
32
+ "description": "Your user ID for portfolio operations"
33
+ }
34
+ ]
35
+ },
36
+ "tools": [
37
+ {
38
+ "name": "search_assets",
39
+ "description": "Search for stocks, ETFs, and other assets by symbol or name. Returns matching assets with basic info.",
40
+ "method": "GET",
41
+ "path": "/search-assets",
42
+ "input_schema": {
43
+ "type": "object",
44
+ "properties": {
45
+ "query": {
46
+ "type": "string",
47
+ "description": "Search query - stock symbol (e.g., AAPL) or company name (e.g., Apple)"
48
+ },
49
+ "asset_type": {
50
+ "type": "string",
51
+ "description": "Filter by asset type",
52
+ "enum": [
53
+ "stock",
54
+ "etf",
55
+ "crypto",
56
+ "bond",
57
+ "fund"
58
+ ]
59
+ },
60
+ "exchange": {
61
+ "type": "string",
62
+ "description": "Filter by exchange (e.g., NYSE, NASDAQ)"
63
+ },
64
+ "limit": {
65
+ "type": "integer",
66
+ "description": "Maximum results to return",
67
+ "default": 20,
68
+ "maximum": 100
69
+ }
70
+ },
71
+ "required": [
72
+ "query"
73
+ ]
74
+ }
75
+ },
76
+ {
77
+ "name": "list_assets",
78
+ "description": "List and filter assets (stocks, ETFs) with fundamentals data. Supports filtering by dividend yield, P/E ratio, market cap, sector, and sorting.",
79
+ "method": "GET",
80
+ "path": "/list-assets",
81
+ "input_schema": {
82
+ "type": "object",
83
+ "properties": {
84
+ "asset_type": {
85
+ "type": "string",
86
+ "description": "Filter by asset type (stock, etf, crypto)"
87
+ },
88
+ "exchange": {
89
+ "type": "string",
90
+ "description": "Filter by exchange (NYSE, NASDAQ)"
91
+ },
92
+ "search": {
93
+ "type": "string",
94
+ "description": "Text search in symbol or name"
95
+ },
96
+ "min_dividend_yield": {
97
+ "type": "number",
98
+ "description": "Minimum dividend yield percentage (e.g., 3 for 3%+)"
99
+ },
100
+ "max_dividend_yield": {
101
+ "type": "number",
102
+ "description": "Maximum dividend yield percentage"
103
+ },
104
+ "min_pe_ratio": {
105
+ "type": "number",
106
+ "description": "Minimum P/E ratio"
107
+ },
108
+ "max_pe_ratio": {
109
+ "type": "number",
110
+ "description": "Maximum P/E ratio (e.g., 20 for value stocks)"
111
+ },
112
+ "min_market_cap": {
113
+ "type": "number",
114
+ "description": "Minimum market cap in USD (e.g., 1000000000 for $1B+)"
115
+ },
116
+ "max_market_cap": {
117
+ "type": "number",
118
+ "description": "Maximum market cap in USD"
119
+ },
120
+ "sector": {
121
+ "type": "string",
122
+ "description": "Filter by sector (e.g., Technology, Healthcare, Financial Services)"
123
+ },
124
+ "industry": {
125
+ "type": "string",
126
+ "description": "Filter by industry"
127
+ },
128
+ "sort": {
129
+ "type": "string",
130
+ "description": "Sort order - field:direction (e.g., dividend_yield:desc, pe_ratio:asc, market_cap:desc)",
131
+ "default": "symbol:asc"
132
+ },
133
+ "limit": {
134
+ "type": "integer",
135
+ "description": "Maximum results per page",
136
+ "default": 50,
137
+ "maximum": 100
138
+ },
139
+ "offset": {
140
+ "type": "integer",
141
+ "description": "Pagination offset",
142
+ "default": 0
143
+ }
144
+ }
145
+ }
146
+ },
147
+ {
148
+ "name": "get_asset",
149
+ "description": "Get comprehensive details for a single asset including price, fundamentals, and dividend history",
150
+ "method": "GET",
151
+ "path": "/get-asset",
152
+ "input_schema": {
153
+ "type": "object",
154
+ "properties": {
155
+ "asset_id": {
156
+ "type": "string",
157
+ "description": "Asset ID or symbol (e.g., AAPL, MSFT)"
158
+ },
159
+ "include_prices": {
160
+ "type": "boolean",
161
+ "description": "Include price history",
162
+ "default": true
163
+ },
164
+ "include_fundamentals": {
165
+ "type": "boolean",
166
+ "description": "Include fundamental data (P/E, dividend yield, etc.)",
167
+ "default": true
168
+ },
169
+ "include_dividends": {
170
+ "type": "boolean",
171
+ "description": "Include dividend history",
172
+ "default": true
173
+ },
174
+ "asset_type": {
175
+ "type": "string",
176
+ "description": "Asset type: stock (default) or crypto/cryptocurrency",
177
+ "enum": [
178
+ "stock",
179
+ "crypto"
180
+ ],
181
+ "default": "stock"
182
+ }
183
+ },
184
+ "required": [
185
+ "asset_id"
186
+ ]
187
+ }
188
+ },
189
+ {
190
+ "name": "create",
191
+ "description": "Create a new investment portfolio to track holdings and performance",
192
+ "method": "POST",
193
+ "path": "/create",
194
+ "input_schema": {
195
+ "type": "object",
196
+ "properties": {
197
+ "user_id": {
198
+ "type": "string",
199
+ "description": "User ID who owns the portfolio"
200
+ },
201
+ "name": {
202
+ "type": "string",
203
+ "description": "Portfolio name (e.g., 'Dividend Growth', 'Tech Stocks')"
204
+ },
205
+ "description": {
206
+ "type": "string",
207
+ "description": "Portfolio description"
208
+ },
209
+ "currency": {
210
+ "type": "string",
211
+ "description": "Base currency for the portfolio",
212
+ "enum": [
213
+ "USD",
214
+ "EUR",
215
+ "GBP",
216
+ "CHF",
217
+ "CAD",
218
+ "AUD",
219
+ "JPY"
220
+ ],
221
+ "default": "USD"
222
+ },
223
+ "is_default": {
224
+ "type": "boolean",
225
+ "description": "Set as default portfolio for this user",
226
+ "default": false
227
+ }
228
+ },
229
+ "required": [
230
+ "user_id",
231
+ "name"
232
+ ]
233
+ }
234
+ },
235
+ {
236
+ "name": "list",
237
+ "description": "List all portfolios for a user",
238
+ "method": "GET",
239
+ "path": "/list",
240
+ "input_schema": {
241
+ "type": "object",
242
+ "properties": {
243
+ "user_id": {
244
+ "type": "string",
245
+ "description": "User ID to list portfolios for"
246
+ },
247
+ "include_valuations": {
248
+ "type": "boolean",
249
+ "description": "Include current valuation for each portfolio",
250
+ "default": false
251
+ }
252
+ },
253
+ "required": [
254
+ "user_id"
255
+ ]
256
+ }
257
+ },
258
+ {
259
+ "name": "get_summary",
260
+ "description": "Get portfolio summary with total value, cost basis, P&L - all converted to portfolio's base currency",
261
+ "method": "GET",
262
+ "path": "/get-summary",
263
+ "input_schema": {
264
+ "type": "object",
265
+ "properties": {
266
+ "portfolio_id": {
267
+ "type": "string",
268
+ "description": "Portfolio ID"
269
+ },
270
+ "as_of_date": {
271
+ "type": "string",
272
+ "description": "Get summary as of specific date (YYYY-MM-DD)",
273
+ "format": "date"
274
+ }
275
+ },
276
+ "required": [
277
+ "portfolio_id"
278
+ ]
279
+ }
280
+ },
281
+ {
282
+ "name": "get_holdings",
283
+ "description": "Get current holdings for a portfolio with market values converted to portfolio's base currency",
284
+ "method": "GET",
285
+ "path": "/get-holdings",
286
+ "input_schema": {
287
+ "type": "object",
288
+ "properties": {
289
+ "portfolio_id": {
290
+ "type": "string",
291
+ "description": "Portfolio ID"
292
+ },
293
+ "asset_type": {
294
+ "type": "string",
295
+ "description": "Filter by asset type (stock, etf, crypto)"
296
+ },
297
+ "include_zero_balance": {
298
+ "type": "boolean",
299
+ "description": "Include positions with zero balance",
300
+ "default": false
301
+ },
302
+ "convert_to_base_currency": {
303
+ "type": "boolean",
304
+ "description": "Convert all values to portfolio's base currency",
305
+ "default": true
306
+ }
307
+ },
308
+ "required": [
309
+ "portfolio_id"
310
+ ]
311
+ }
312
+ },
313
+ {
314
+ "name": "record_transaction",
315
+ "description": "Record a buy, sell, or transfer transaction and automatically update holdings",
316
+ "method": "GET",
317
+ "path": "/record-transaction",
318
+ "input_schema": {
319
+ "type": "object",
320
+ "properties": {
321
+ "portfolio_id": {
322
+ "type": "string",
323
+ "description": "Portfolio ID"
324
+ },
325
+ "asset_id": {
326
+ "type": "string",
327
+ "description": "Asset ID"
328
+ },
329
+ "transaction_type": {
330
+ "type": "string",
331
+ "description": "Type of transaction",
332
+ "enum": [
333
+ "buy",
334
+ "sell",
335
+ "transfer_in",
336
+ "transfer_out"
337
+ ]
338
+ },
339
+ "quantity": {
340
+ "type": "number",
341
+ "description": "Number of shares/units"
342
+ },
343
+ "price_per_unit": {
344
+ "type": "number",
345
+ "description": "Price per share/unit"
346
+ },
347
+ "transaction_date": {
348
+ "type": "string",
349
+ "description": "Transaction date (YYYY-MM-DD)",
350
+ "format": "date"
351
+ },
352
+ "fees": {
353
+ "type": "number",
354
+ "description": "Transaction fees",
355
+ "default": 0
356
+ },
357
+ "taxes": {
358
+ "type": "number",
359
+ "description": "Transaction taxes",
360
+ "default": 0
361
+ },
362
+ "currency": {
363
+ "type": "string",
364
+ "description": "Transaction currency",
365
+ "default": "USD"
366
+ },
367
+ "exchange_rate": {
368
+ "type": "number",
369
+ "description": "Exchange rate to portfolio base currency (auto-fetched if not provided)",
370
+ "default": 1
371
+ },
372
+ "notes": {
373
+ "type": "string",
374
+ "description": "Transaction notes"
375
+ }
376
+ },
377
+ "required": [
378
+ "portfolio_id",
379
+ "asset_id",
380
+ "transaction_type",
381
+ "quantity",
382
+ "price_per_unit",
383
+ "transaction_date"
384
+ ]
385
+ }
386
+ },
387
+ {
388
+ "name": "list_transactions",
389
+ "description": "List transaction history for a portfolio with filtering options",
390
+ "method": "GET",
391
+ "path": "/list-transactions",
392
+ "input_schema": {
393
+ "type": "object",
394
+ "properties": {
395
+ "portfolio_id": {
396
+ "type": "string",
397
+ "description": "Portfolio ID"
398
+ },
399
+ "asset_id": {
400
+ "type": "string",
401
+ "description": "Filter by specific asset"
402
+ },
403
+ "transaction_type": {
404
+ "type": "string",
405
+ "description": "Filter by transaction type",
406
+ "enum": [
407
+ "buy",
408
+ "sell",
409
+ "transfer_in",
410
+ "transfer_out",
411
+ "dividend"
412
+ ]
413
+ },
414
+ "start_date": {
415
+ "type": "string",
416
+ "description": "Filter from date (YYYY-MM-DD)",
417
+ "format": "date"
418
+ },
419
+ "end_date": {
420
+ "type": "string",
421
+ "description": "Filter to date (YYYY-MM-DD)",
422
+ "format": "date"
423
+ },
424
+ "limit": {
425
+ "type": "integer",
426
+ "description": "Maximum results",
427
+ "default": 50,
428
+ "maximum": 500
429
+ },
430
+ "offset": {
431
+ "type": "integer",
432
+ "description": "Pagination offset",
433
+ "default": 0
434
+ }
435
+ },
436
+ "required": [
437
+ "portfolio_id"
438
+ ]
439
+ }
440
+ },
441
+ {
442
+ "name": "record_income",
443
+ "description": "Record dividend income or other distributions received",
444
+ "method": "GET",
445
+ "path": "/record-income",
446
+ "input_schema": {
447
+ "type": "object",
448
+ "properties": {
449
+ "portfolio_id": {
450
+ "type": "string",
451
+ "description": "Portfolio ID"
452
+ },
453
+ "asset_id": {
454
+ "type": "string",
455
+ "description": "Asset ID that paid the dividend"
456
+ },
457
+ "amount": {
458
+ "type": "number",
459
+ "description": "Dividend amount received"
460
+ },
461
+ "income_type": {
462
+ "type": "string",
463
+ "description": "Type of income",
464
+ "enum": [
465
+ "dividend",
466
+ "interest",
467
+ "distribution",
468
+ "return_of_capital"
469
+ ],
470
+ "default": "dividend"
471
+ },
472
+ "income_date": {
473
+ "type": "string",
474
+ "description": "Date received (YYYY-MM-DD)",
475
+ "format": "date"
476
+ },
477
+ "currency": {
478
+ "type": "string",
479
+ "description": "Income currency",
480
+ "default": "USD"
481
+ },
482
+ "tax_withheld": {
483
+ "type": "number",
484
+ "description": "Tax withheld amount",
485
+ "default": 0
486
+ },
487
+ "notes": {
488
+ "type": "string",
489
+ "description": "Notes"
490
+ }
491
+ },
492
+ "required": [
493
+ "portfolio_id",
494
+ "asset_id",
495
+ "amount",
496
+ "income_date"
497
+ ]
498
+ }
499
+ }
500
+ ]
501
+ }