finance_dev 0.9.0__py3-none-any.whl

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 (486) hide show
  1. finance_dev/__init__.py +18 -0
  2. finance_dev/_hooks/__init__.py +7 -0
  3. finance_dev/_hooks/clientcredentials.py +319 -0
  4. finance_dev/_hooks/oauth2scopes.py +50 -0
  5. finance_dev/_hooks/registration.py +13 -0
  6. finance_dev/_hooks/sdkhooks.py +82 -0
  7. finance_dev/_hooks/types.py +125 -0
  8. finance_dev/_version.py +16 -0
  9. finance_dev/accounts.py +797 -0
  10. finance_dev/alternativedata.py +4830 -0
  11. finance_dev/analytics.py +3757 -0
  12. finance_dev/basesdk.py +393 -0
  13. finance_dev/calendar.py +1523 -0
  14. finance_dev/chart.py +1881 -0
  15. finance_dev/company.py +1105 -0
  16. finance_dev/corporateactions.py +1795 -0
  17. finance_dev/economy.py +1153 -0
  18. finance_dev/errors/__init__.py +94 -0
  19. finance_dev/errors/apierror.py +41 -0
  20. finance_dev/errors/authenticationerrorenvelope.py +43 -0
  21. finance_dev/errors/badrequest.py +34 -0
  22. finance_dev/errors/errorenvelope.py +42 -0
  23. finance_dev/errors/errorresponse.py +45 -0
  24. finance_dev/errors/financedevapierror.py +31 -0
  25. finance_dev/errors/forbidden.py +34 -0
  26. finance_dev/errors/internalservererror.py +35 -0
  27. finance_dev/errors/no_response_error.py +18 -0
  28. finance_dev/errors/notfound.py +34 -0
  29. finance_dev/errors/orderhistorybadrequest.py +35 -0
  30. finance_dev/errors/predorderserrorenvelope.py +42 -0
  31. finance_dev/errors/responsevalidationerror.py +28 -0
  32. finance_dev/errors/unauthorized.py +34 -0
  33. finance_dev/estimates.py +1906 -0
  34. finance_dev/etf.py +1108 -0
  35. finance_dev/filings.py +586 -0
  36. finance_dev/financials.py +4079 -0
  37. finance_dev/history.py +477 -0
  38. finance_dev/httpclient.py +126 -0
  39. finance_dev/indices.py +2308 -0
  40. finance_dev/logos.py +692 -0
  41. finance_dev/market.py +1825 -0
  42. finance_dev/markets.py +952 -0
  43. finance_dev/models/__init__.py +4568 -0
  44. finance_dev/models/accountbalancev2.py +340 -0
  45. finance_dev/models/accountitem.py +78 -0
  46. finance_dev/models/accountposition.py +147 -0
  47. finance_dev/models/aggregatetechnicalindicatorsresponse.py +192 -0
  48. finance_dev/models/analystinsightitem.py +161 -0
  49. finance_dev/models/analystinsightsresponse.py +39 -0
  50. finance_dev/models/apperror.py +123 -0
  51. finance_dev/models/authenticationerrordetail.py +58 -0
  52. finance_dev/models/bankbranchesresponse.py +96 -0
  53. finance_dev/models/basicfinancials.py +243 -0
  54. finance_dev/models/bullbearanalysisresponse.py +150 -0
  55. finance_dev/models/cancelorderop.py +40 -0
  56. finance_dev/models/cancelordrequest_union.py +287 -0
  57. finance_dev/models/cancelordresponse.py +115 -0
  58. finance_dev/models/cashflowstatement.py +290 -0
  59. finance_dev/models/cashflowstatementsresponse.py +61 -0
  60. finance_dev/models/chartbars.py +111 -0
  61. finance_dev/models/chartconfig.py +81 -0
  62. finance_dev/models/chartresolution.py +46 -0
  63. finance_dev/models/companyesgresponse.py +408 -0
  64. finance_dev/models/companyexecutive.py +70 -0
  65. finance_dev/models/companyexecutiveresponse.py +39 -0
  66. finance_dev/models/companypeersresponse.py +38 -0
  67. finance_dev/models/companypresentationresponse.py +96 -0
  68. finance_dev/models/companyprofile.py +255 -0
  69. finance_dev/models/conferencecallsresponse.py +169 -0
  70. finance_dev/models/congressionaltradingresponse.py +138 -0
  71. finance_dev/models/covid19uscasesresponse.py +79 -0
  72. finance_dev/models/createconfigwatchlistop.py +40 -0
  73. finance_dev/models/createwatchlistrequest.py +43 -0
  74. finance_dev/models/dailymarketsummaryresponse.py +73 -0
  75. finance_dev/models/deleteconfigwatchlistbyidop.py +53 -0
  76. finance_dev/models/dividenditem.py +125 -0
  77. finance_dev/models/dividendsresponse.py +61 -0
  78. finance_dev/models/earningrelease.py +291 -0
  79. finance_dev/models/earningscallliveresponse.py +103 -0
  80. finance_dev/models/earningsqualityscoreresponse.py +140 -0
  81. finance_dev/models/earningssurprisesresponse.py +125 -0
  82. finance_dev/models/ebitdaestimatesresponse.py +176 -0
  83. finance_dev/models/ebitestimatesresponse.py +176 -0
  84. finance_dev/models/economicscalendarevent.py +160 -0
  85. finance_dev/models/economicsindicator.py +87 -0
  86. finance_dev/models/epsestimatesresponse.py +176 -0
  87. finance_dev/models/equitydetailsdto.py +569 -0
  88. finance_dev/models/errorcode.py +48 -0
  89. finance_dev/models/etblistresponse.py +43 -0
  90. finance_dev/models/etbsearchrequest.py +21 -0
  91. finance_dev/models/etbsearchresponse.py +43 -0
  92. finance_dev/models/etfcountryallocationresponse.py +113 -0
  93. finance_dev/models/etfholdingsresponse.py +163 -0
  94. finance_dev/models/etfprofileresponse.py +234 -0
  95. finance_dev/models/etfsectorallocationresponse.py +113 -0
  96. finance_dev/models/exchangecode.py +90 -0
  97. finance_dev/models/fdaadvisorycommitteecalendarresponse.py +88 -0
  98. finance_dev/models/filingsimilarityrecord.py +115 -0
  99. finance_dev/models/filingssimilarityindexdatawrapper.py +52 -0
  100. finance_dev/models/filingssimilarityindexresponse.py +42 -0
  101. finance_dev/models/financialratiosresponse.py +252 -0
  102. finance_dev/models/financialsreporteddatawrapper.py +49 -0
  103. finance_dev/models/financialsreportedresponse.py +42 -0
  104. finance_dev/models/financialsrevenuebreakdowndatawrapper.py +49 -0
  105. finance_dev/models/financialsrevenuebreakdownresponse.py +42 -0
  106. finance_dev/models/financialsstatementsdatawrapper.py +44 -0
  107. finance_dev/models/financialsstatementsresponse.py +42 -0
  108. finance_dev/models/financialstatement.py +171 -0
  109. finance_dev/models/financialstatementtype.py +14 -0
  110. finance_dev/models/getaccountbalanceop.py +53 -0
  111. finance_dev/models/getaccountpositionsop.py +53 -0
  112. finance_dev/models/getaccountsresponse.py +22 -0
  113. finance_dev/models/getaggregatetechnicalindicatorsop.py +94 -0
  114. finance_dev/models/getanalystinsightsop.py +164 -0
  115. finance_dev/models/getbankbranchesop.py +53 -0
  116. finance_dev/models/getbaseeventop.py +87 -0
  117. finance_dev/models/getbullbearanalysisop.py +91 -0
  118. finance_dev/models/getcashflowstatementsop.py +564 -0
  119. finance_dev/models/getchartconfigop.py +40 -0
  120. finance_dev/models/getcharthistoryop.py +122 -0
  121. finance_dev/models/getcharttimeop.py +39 -0
  122. finance_dev/models/getcompanyesgop.py +53 -0
  123. finance_dev/models/getcompanyexecutivesop.py +56 -0
  124. finance_dev/models/getcompanymetricsop.py +68 -0
  125. finance_dev/models/getcompanypeersop.py +53 -0
  126. finance_dev/models/getcompanypresentationop.py +56 -0
  127. finance_dev/models/getcompanyprofileop.py +86 -0
  128. finance_dev/models/getconferencecallsop.py +111 -0
  129. finance_dev/models/getconfigwatchlistbyidop.py +53 -0
  130. finance_dev/models/getconfigwatchlistsop.py +40 -0
  131. finance_dev/models/getcongressionaltradingop.py +73 -0
  132. finance_dev/models/getcovid19uscasesop.py +43 -0
  133. finance_dev/models/getdailymarketsummaryop.py +92 -0
  134. finance_dev/models/getdividendsop.py +294 -0
  135. finance_dev/models/getearningscalendarop.py +87 -0
  136. finance_dev/models/getearningscallliveop.py +91 -0
  137. finance_dev/models/getearningsqualityscoreop.py +81 -0
  138. finance_dev/models/getearningssurprisesop.py +80 -0
  139. finance_dev/models/getebitdaestimatesop.py +91 -0
  140. finance_dev/models/getebitestimatesop.py +88 -0
  141. finance_dev/models/geteconomicscalendarop.py +92 -0
  142. finance_dev/models/geteconomicscalendarresponse.py +56 -0
  143. finance_dev/models/getepsestimatesop.py +88 -0
  144. finance_dev/models/getequitydetailsop.py +56 -0
  145. finance_dev/models/getequitydetailsresponse.py +45 -0
  146. finance_dev/models/getetblistop.py +40 -0
  147. finance_dev/models/getetfcountryallocationop.py +80 -0
  148. finance_dev/models/getetfholdingsop.py +96 -0
  149. finance_dev/models/getetfprofileop.py +77 -0
  150. finance_dev/models/getetfsectorallocationop.py +80 -0
  151. finance_dev/models/geteventcontractsop.py +87 -0
  152. finance_dev/models/getfdaadvisorycommitteecalendarop.py +47 -0
  153. finance_dev/models/getfilingssimilarityindexop.py +102 -0
  154. finance_dev/models/getfinancialratiosop.py +612 -0
  155. finance_dev/models/getfinancialstatementsop.py +117 -0
  156. finance_dev/models/getfundownershipop.py +77 -0
  157. finance_dev/models/gethistoricaldataop.py +61 -0
  158. finance_dev/models/gethistoricalesgop.py +53 -0
  159. finance_dev/models/gethistorybatchop.py +74 -0
  160. finance_dev/models/gethistoryop.py +123 -0
  161. finance_dev/models/getincomestatementsop.py +564 -0
  162. finance_dev/models/getindexbarop.py +140 -0
  163. finance_dev/models/getindexbarsop.py +149 -0
  164. finance_dev/models/getindexchartbarsop.py +178 -0
  165. finance_dev/models/getindexrealtimevaluesop.py +94 -0
  166. finance_dev/models/getinflationexpectationsop.py +157 -0
  167. finance_dev/models/getinflationop.py +154 -0
  168. finance_dev/models/getinsidertransactionsop.py +90 -0
  169. finance_dev/models/getinstitutionalownershipop.py +99 -0
  170. finance_dev/models/getinstitutionalportfolioop.py +75 -0
  171. finance_dev/models/getinvestmentthemeop.py +68 -0
  172. finance_dev/models/getipocalendarop.py +63 -0
  173. finance_dev/models/getlobbyingop.py +70 -0
  174. finance_dev/models/getmarketbreadthop.py +40 -0
  175. finance_dev/models/getmarketholidaysop.py +65 -0
  176. finance_dev/models/getmarketstatusop.py +65 -0
  177. finance_dev/models/getmergersandacquisitionsop.py +113 -0
  178. finance_dev/models/getnetinflowop.py +40 -0
  179. finance_dev/models/getnewsbyidop.py +73 -0
  180. finance_dev/models/getnewsop.py +98 -0
  181. finance_dev/models/getnewssentimentop.py +53 -0
  182. finance_dev/models/getoptionchainsnapshotop.py +244 -0
  183. finance_dev/models/getoptioncontractsnapshotop.py +69 -0
  184. finance_dev/models/getoptiondetailsop.py +56 -0
  185. finance_dev/models/getoptiondetailsresponse.py +45 -0
  186. finance_dev/models/getoptionlasttradeop.py +56 -0
  187. finance_dev/models/getoptionopencloseop.py +66 -0
  188. finance_dev/models/getoptionpreviousdayop.py +56 -0
  189. finance_dev/models/getoptionquotesop.py +177 -0
  190. finance_dev/models/getoptionsactivityop.py +111 -0
  191. finance_dev/models/getoptionsetfstopvolumeop.py +70 -0
  192. finance_dev/models/getoptionsstockstopgainersop.py +70 -0
  193. finance_dev/models/getoptionsstockstopvolumeop.py +70 -0
  194. finance_dev/models/getoptionsunusualactivityop.py +100 -0
  195. finance_dev/models/getoptiontradesop.py +177 -0
  196. finance_dev/models/getordersv2response.py +66 -0
  197. finance_dev/models/getownershipdataop.py +77 -0
  198. finance_dev/models/getpositionsresponse.py +39 -0
  199. finance_dev/models/getpredictionorderop.py +88 -0
  200. finance_dev/models/getpricetargetop.py +53 -0
  201. finance_dev/models/getquotesop.py +53 -0
  202. finance_dev/models/getratingsop.py +164 -0
  203. finance_dev/models/getratingsresponse.py +39 -0
  204. finance_dev/models/getreportedfinancialsop.py +127 -0
  205. finance_dev/models/getrevenuebreakdownop.py +85 -0
  206. finance_dev/models/getrevenueestimatesop.py +91 -0
  207. finance_dev/models/getsecfilingsop.py +113 -0
  208. finance_dev/models/getsectortickersop.py +124 -0
  209. finance_dev/models/getsectorwisechangeop.py +84 -0
  210. finance_dev/models/getshortinterestop.py +334 -0
  211. finance_dev/models/getshortvolumeop.py +333 -0
  212. finance_dev/models/getsocialsentimentop.py +90 -0
  213. finance_dev/models/getspinoffsop.py +112 -0
  214. finance_dev/models/getstockaggregatesop.py +174 -0
  215. finance_dev/models/getstocklastquoteop.py +56 -0
  216. finance_dev/models/getstocklasttradeop.py +56 -0
  217. finance_dev/models/getstockopencloseop.py +90 -0
  218. finance_dev/models/getstockpreviousdayop.py +80 -0
  219. finance_dev/models/getstockquotesop.py +177 -0
  220. finance_dev/models/getstocksnapshotsop.py +82 -0
  221. finance_dev/models/getstocksplitsop.py +243 -0
  222. finance_dev/models/getstocktradesop.py +177 -0
  223. finance_dev/models/getsupplychainop.py +53 -0
  224. finance_dev/models/getsupportresistancelevelsop.py +90 -0
  225. finance_dev/models/getsymbolinfoop.py +53 -0
  226. finance_dev/models/gettechnicalindicatorop.py +172 -0
  227. finance_dev/models/gettechnicalpatternsop.py +88 -0
  228. finance_dev/models/gettenderoffersop.py +112 -0
  229. finance_dev/models/gettickhistoryop.py +104 -0
  230. finance_dev/models/gettopgainersop.py +78 -0
  231. finance_dev/models/gettoplosersop.py +78 -0
  232. finance_dev/models/gettopmostactiveop.py +78 -0
  233. finance_dev/models/gettranscriptop.py +53 -0
  234. finance_dev/models/gettreasuryyieldsop.py +157 -0
  235. finance_dev/models/getunifiedsnapshotop.py +223 -0
  236. finance_dev/models/getupgradesdowngradesop.py +91 -0
  237. finance_dev/models/getusaspendingop.py +70 -0
  238. finance_dev/models/getuseraccountsop.py +40 -0
  239. finance_dev/models/getusptopatentsop.py +70 -0
  240. finance_dev/models/getvisaapplicationsop.py +73 -0
  241. finance_dev/models/historicalesgresponse.py +439 -0
  242. finance_dev/models/httpmetadata.py +24 -0
  243. finance_dev/models/incomestatement.py +296 -0
  244. finance_dev/models/incomestatementsresponse.py +61 -0
  245. finance_dev/models/indexbarresponse.py +194 -0
  246. finance_dev/models/indexbarsresponse.py +123 -0
  247. finance_dev/models/indexchartbarsresponse.py +213 -0
  248. finance_dev/models/indexgroupsresponse.py +78 -0
  249. finance_dev/models/indexlistresponse.py +95 -0
  250. finance_dev/models/indexsearchresponse.py +93 -0
  251. finance_dev/models/indicesbygroupresponse.py +93 -0
  252. finance_dev/models/indicesidentifiertype.py +28 -0
  253. finance_dev/models/indicesrealtimeindexinfo.py +67 -0
  254. finance_dev/models/indicesrealtimeindexvalue.py +157 -0
  255. finance_dev/models/indicesrealtimevaluesitem.py +80 -0
  256. finance_dev/models/indicesrealtimevaluesresponse.py +42 -0
  257. finance_dev/models/inflationexpectationsresponse.py +140 -0
  258. finance_dev/models/inflationresponse.py +132 -0
  259. finance_dev/models/insidertransaction.py +97 -0
  260. finance_dev/models/insidertransactionsresponse.py +39 -0
  261. finance_dev/models/institutionalholding.py +77 -0
  262. finance_dev/models/institutionalownershipresponse.py +39 -0
  263. finance_dev/models/institutionalportfolioresponse.py +39 -0
  264. finance_dev/models/investmentthemeid.py +35 -0
  265. finance_dev/models/investmentthemeresponse.py +80 -0
  266. finance_dev/models/ipocalendarresponse.py +39 -0
  267. finance_dev/models/ipoitem.py +93 -0
  268. finance_dev/models/listactiveordersop.py +87 -0
  269. finance_dev/models/listcategoriesop.py +79 -0
  270. finance_dev/models/listindexgroupsop.py +40 -0
  271. finance_dev/models/listindicesbygroupop.py +58 -0
  272. finance_dev/models/listindicesop.py +91 -0
  273. finance_dev/models/listoptioncontractsop.py +66 -0
  274. finance_dev/models/listoptionexpirydatesop.py +56 -0
  275. finance_dev/models/listorderhistoryop.py +139 -0
  276. finance_dev/models/listpredictionordersop.py +134 -0
  277. finance_dev/models/listtranscriptsop.py +53 -0
  278. finance_dev/models/lobbyingresponse.py +166 -0
  279. finance_dev/models/logosearchresponse.py +152 -0
  280. finance_dev/models/logosyncresponse.py +277 -0
  281. finance_dev/models/marketbreadth.py +97 -0
  282. finance_dev/models/marketbreadthresponse.py +44 -0
  283. finance_dev/models/marketholiday.py +56 -0
  284. finance_dev/models/marketholidayresponse.py +39 -0
  285. finance_dev/models/marketstatus.py +67 -0
  286. finance_dev/models/mergersandacquisitionsresponse.py +186 -0
  287. finance_dev/models/metricseriespoint.py +43 -0
  288. finance_dev/models/netinflow.py +81 -0
  289. finance_dev/models/netinflowresponse.py +44 -0
  290. finance_dev/models/newsitem.py +102 -0
  291. finance_dev/models/newslistresponse.py +128 -0
  292. finance_dev/models/newssentimentresponse.py +176 -0
  293. finance_dev/models/newstypeenum.py +16 -0
  294. finance_dev/models/optionchainsnapshotresponse.py +64 -0
  295. finance_dev/models/optioncontractsnapshotresponse.py +64 -0
  296. finance_dev/models/optioncontractsnapshotrow.py +164 -0
  297. finance_dev/models/optioncontractsresponse.py +131 -0
  298. finance_dev/models/optiondetailsdto.py +72 -0
  299. finance_dev/models/optionexpirydatesresponse.py +53 -0
  300. finance_dev/models/optionlasttraderesponse.py +169 -0
  301. finance_dev/models/optionopencloseresponse.py +97 -0
  302. finance_dev/models/optionpreviousdayresponse.py +89 -0
  303. finance_dev/models/optionquotesresponse.py +138 -0
  304. finance_dev/models/optionsactivityresponse.py +265 -0
  305. finance_dev/models/optionsnapshotcontractdetails.py +85 -0
  306. finance_dev/models/optionsnapshotdaybar.py +107 -0
  307. finance_dev/models/optionsnapshotgreeks.py +67 -0
  308. finance_dev/models/optionsnapshotlastquote.py +116 -0
  309. finance_dev/models/optionsnapshotlasttrade.py +102 -0
  310. finance_dev/models/optionsnapshotunderlying.py +86 -0
  311. finance_dev/models/optionsscreeneritem.py +151 -0
  312. finance_dev/models/optionsunusualactivityresponse.py +62 -0
  313. finance_dev/models/optionsunusualactivitytrade.py +103 -0
  314. finance_dev/models/optiontradesresponse.py +132 -0
  315. finance_dev/models/orderrequesttimeinforceenum.py +29 -0
  316. finance_dev/models/ordersideenum.py +20 -0
  317. finance_dev/models/ordertypeenum.py +20 -0
  318. finance_dev/models/ordleg.py +162 -0
  319. finance_dev/models/ordresponse.py +202 -0
  320. finance_dev/models/ownershipdataresponse.py +39 -0
  321. finance_dev/models/ownershiprecord.py +74 -0
  322. finance_dev/models/placeorderop.py +40 -0
  323. finance_dev/models/placeordrequest_union.py +335 -0
  324. finance_dev/models/placepredictionorderop.py +114 -0
  325. finance_dev/models/predmdbaseevent.py +62 -0
  326. finance_dev/models/predmdbaseeventhit.py +53 -0
  327. finance_dev/models/predmdbaseeventsearchresult.py +46 -0
  328. finance_dev/models/predmdbaseeventwithevents.py +32 -0
  329. finance_dev/models/predmdbatchhistoryrequest.py +16 -0
  330. finance_dev/models/predmdbatchhistoryresponse.py +16 -0
  331. finance_dev/models/predmdcategory.py +48 -0
  332. finance_dev/models/predmdcontract.py +177 -0
  333. finance_dev/models/predmdcontracthit.py +157 -0
  334. finance_dev/models/predmdcontractsearchresult.py +46 -0
  335. finance_dev/models/predmdevent.py +136 -0
  336. finance_dev/models/predmdeventhit.py +73 -0
  337. finance_dev/models/predmdeventsearchresult.py +46 -0
  338. finance_dev/models/predmdeventwithcontracts.py +22 -0
  339. finance_dev/models/predmdhistoryrequest.py +59 -0
  340. finance_dev/models/predmdhistoryresponse.py +53 -0
  341. finance_dev/models/predmdtick.py +53 -0
  342. finance_dev/models/predordersapperror.py +78 -0
  343. finance_dev/models/predordersorder.py +267 -0
  344. finance_dev/models/predordersorderdetail.py +26 -0
  345. finance_dev/models/predordersorderpage.py +45 -0
  346. finance_dev/models/predordersorderreport.py +88 -0
  347. finance_dev/models/predordersplaceorderrequest.py +159 -0
  348. finance_dev/models/previeworderop.py +40 -0
  349. finance_dev/models/previeworderresponse.py +127 -0
  350. finance_dev/models/pricetargetresponse.py +89 -0
  351. finance_dev/models/quotedata.py +49 -0
  352. finance_dev/models/quotesresponse.py +62 -0
  353. finance_dev/models/quotevalues.py +114 -0
  354. finance_dev/models/rating.py +193 -0
  355. finance_dev/models/ratingsaccuracy.py +242 -0
  356. finance_dev/models/replaceconfigwatchlistsop.py +40 -0
  357. finance_dev/models/replaceorderop.py +40 -0
  358. finance_dev/models/replaceordrequest_union.py +367 -0
  359. finance_dev/models/replaceordresponse.py +144 -0
  360. finance_dev/models/reportedbsitem.py +53 -0
  361. finance_dev/models/reportedfiling.py +110 -0
  362. finance_dev/models/reportedreport.py +39 -0
  363. finance_dev/models/reportingfrequency.py +16 -0
  364. finance_dev/models/revenuebreakdownaxis.py +52 -0
  365. finance_dev/models/revenuebreakdowndatapoint.py +58 -0
  366. finance_dev/models/revenuebreakdownentry.py +51 -0
  367. finance_dev/models/revenuebreakdowninner.py +75 -0
  368. finance_dev/models/revenueestimatesresponse.py +176 -0
  369. finance_dev/models/screenclause.py +70 -0
  370. finance_dev/models/screengroup.py +75 -0
  371. finance_dev/models/searchetbsymbolsop.py +40 -0
  372. finance_dev/models/searchindicesop.py +55 -0
  373. finance_dev/models/searchlogosop.py +158 -0
  374. finance_dev/models/searchmarketsymbolsop.py +80 -0
  375. finance_dev/models/searchop.py +232 -0
  376. finance_dev/models/searchsymbolitem.py +76 -0
  377. finance_dev/models/searchsymbolresponseitem.py +71 -0
  378. finance_dev/models/searchsymbolsop.py +77 -0
  379. finance_dev/models/secfiling.py +91 -0
  380. finance_dev/models/secfilingsresponse.py +39 -0
  381. finance_dev/models/sectoravgchange.py +50 -0
  382. finance_dev/models/security.py +59 -0
  383. finance_dev/models/securitytypeenum.py +16 -0
  384. finance_dev/models/shortinterestresponse.py +126 -0
  385. finance_dev/models/shortvolumeresponse.py +198 -0
  386. finance_dev/models/socialsentimentresponse.py +124 -0
  387. finance_dev/models/sortorderenum.py +13 -0
  388. finance_dev/models/spinoffsresponse.py +136 -0
  389. finance_dev/models/stockaggregatesresponse.py +92 -0
  390. finance_dev/models/stocklastquoteresponse.py +175 -0
  391. finance_dev/models/stocklasttraderesponse.py +169 -0
  392. finance_dev/models/stockohlcbar.py +85 -0
  393. finance_dev/models/stockopencloseresponse.py +109 -0
  394. finance_dev/models/stockpreviousdayresponse.py +86 -0
  395. finance_dev/models/stockquotesresponse.py +170 -0
  396. finance_dev/models/stockscreenerop.py +144 -0
  397. finance_dev/models/stockscreenerrequest.py +131 -0
  398. finance_dev/models/stockscreenerresponse.py +197 -0
  399. finance_dev/models/stocksnapshotsresponse.py +454 -0
  400. finance_dev/models/stocksplitsresponse.py +144 -0
  401. finance_dev/models/stocktradesresponse.py +164 -0
  402. finance_dev/models/supplychainresponse.py +158 -0
  403. finance_dev/models/supportresistancelevelsresponse.py +68 -0
  404. finance_dev/models/symboldetails.py +119 -0
  405. finance_dev/models/symbolerror.py +43 -0
  406. finance_dev/models/symbolinfo.py +183 -0
  407. finance_dev/models/synclogosop.py +146 -0
  408. finance_dev/models/technicalindicatorresponse.py +43 -0
  409. finance_dev/models/technicalindicatortype.py +21 -0
  410. finance_dev/models/technicalpatternsresponse.py +249 -0
  411. finance_dev/models/tenderofferidentifiertype.py +26 -0
  412. finance_dev/models/tenderoffersresponse.py +548 -0
  413. finance_dev/models/tickchartbars.py +104 -0
  414. finance_dev/models/tickresolution.py +20 -0
  415. finance_dev/models/timeinforceenum.py +26 -0
  416. finance_dev/models/tradeorderlegv2.py +164 -0
  417. finance_dev/models/tradeorderv2.py +434 -0
  418. finance_dev/models/transcriptresponse.py +162 -0
  419. finance_dev/models/transcriptsresponse.py +89 -0
  420. finance_dev/models/treasuryyieldsresponse.py +160 -0
  421. finance_dev/models/unifiedsnapshotresponse.py +308 -0
  422. finance_dev/models/updateconfigwatchlistbyidop.py +65 -0
  423. finance_dev/models/updatewatchlistrequest_union.py +134 -0
  424. finance_dev/models/upgradesdowngradesresponse.py +98 -0
  425. finance_dev/models/usaspendingresponse.py +222 -0
  426. finance_dev/models/usptopatentsresponse.py +134 -0
  427. finance_dev/models/visaapplicationsresponse.py +228 -0
  428. finance_dev/models/watchlist.py +68 -0
  429. finance_dev/models/watchlistrequest.py +43 -0
  430. finance_dev/models/watchlistresponse.py +44 -0
  431. finance_dev/news_sdk.py +829 -0
  432. finance_dev/options.py +3443 -0
  433. finance_dev/orders.py +1907 -0
  434. finance_dev/ownership.py +1386 -0
  435. finance_dev/predictions.py +29 -0
  436. finance_dev/predictions_orders.py +852 -0
  437. finance_dev/py.typed +1 -0
  438. finance_dev/sdk.py +347 -0
  439. finance_dev/sdkconfiguration.py +50 -0
  440. finance_dev/signals.py +338 -0
  441. finance_dev/stocks.py +3131 -0
  442. finance_dev/technicalanalysis_sdk.py +1137 -0
  443. finance_dev/types/__init__.py +25 -0
  444. finance_dev/types/base64fileinput.py +44 -0
  445. finance_dev/types/basemodel.py +78 -0
  446. finance_dev/utils/__init__.py +181 -0
  447. finance_dev/utils/annotations.py +80 -0
  448. finance_dev/utils/datetimes.py +42 -0
  449. finance_dev/utils/dynamic_imports.py +55 -0
  450. finance_dev/utils/enums.py +135 -0
  451. finance_dev/utils/eventstreaming.py +327 -0
  452. finance_dev/utils/forms.py +240 -0
  453. finance_dev/utils/headers.py +137 -0
  454. finance_dev/utils/logger.py +23 -0
  455. finance_dev/utils/metadata.py +120 -0
  456. finance_dev/utils/queryparams.py +218 -0
  457. finance_dev/utils/requestbodies.py +68 -0
  458. finance_dev/utils/retries.py +373 -0
  459. finance_dev/utils/security.py +199 -0
  460. finance_dev/utils/serializers.py +327 -0
  461. finance_dev/utils/unmarshal_json_response.py +39 -0
  462. finance_dev/utils/url.py +155 -0
  463. finance_dev/utils/values.py +143 -0
  464. finance_dev/watchlist_sdk.py +1583 -0
  465. finance_dev/websocket/__init__.py +57 -0
  466. finance_dev/websocket/account.py +5 -0
  467. finance_dev/websocket/auth.py +124 -0
  468. finance_dev/websocket/chart.py +5 -0
  469. finance_dev/websocket/codec.py +66 -0
  470. finance_dev/websocket/config.py +52 -0
  471. finance_dev/websocket/errors.py +54 -0
  472. finance_dev/websocket/market.py +5 -0
  473. finance_dev/websocket/models/__init__.py +52 -0
  474. finance_dev/websocket/models/account.py +60 -0
  475. finance_dev/websocket/models/chart.py +44 -0
  476. finance_dev/websocket/models/common.py +85 -0
  477. finance_dev/websocket/models/market.py +113 -0
  478. finance_dev/websocket/resources.py +327 -0
  479. finance_dev/websocket/sdk.py +13 -0
  480. finance_dev/websocket/transport/async_connection.py +493 -0
  481. finance_dev/websocket/transport/base.py +78 -0
  482. finance_dev/websocket/transport/sync_connection.py +470 -0
  483. finance_dev-0.9.0.dist-info/METADATA +913 -0
  484. finance_dev-0.9.0.dist-info/RECORD +486 -0
  485. finance_dev-0.9.0.dist-info/WHEEL +5 -0
  486. finance_dev-0.9.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,53 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 5073b17c4720
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .symbolinfo import SymbolInfo, SymbolInfoTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetSymbolInfoRequestTypedDict(TypedDict):
16
+ symbol: str
17
+ r"""Symbol to resolve for charting. Use equities like `AAPL` or futures with a leading slash such as `/ES`. Prefer values returned by chart search."""
18
+
19
+
20
+ class GetSymbolInfoRequest(BaseModel):
21
+ symbol: Annotated[
22
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
23
+ ]
24
+ r"""Symbol to resolve for charting. Use equities like `AAPL` or futures with a leading slash such as `/ES`. Prefer values returned by chart search."""
25
+
26
+
27
+ class GetSymbolInfoResponseTypedDict(TypedDict):
28
+ http_meta: HTTPMetadataTypedDict
29
+ symbol_info: NotRequired[SymbolInfoTypedDict]
30
+ r"""Symbol information retrieved successfully"""
31
+
32
+
33
+ class GetSymbolInfoResponse(BaseModel):
34
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
35
+
36
+ symbol_info: Optional[SymbolInfo] = None
37
+ r"""Symbol information retrieved successfully"""
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = set(["SymbolInfo"])
42
+ serialized = handler(self)
43
+ m = {}
44
+
45
+ for n, f in type(self).model_fields.items():
46
+ k = f.alias or n
47
+ val = serialized.get(k, serialized.get(n))
48
+
49
+ if val != UNSET_SENTINEL:
50
+ if val is not None or k not in optional_fields:
51
+ m[k] = val
52
+
53
+ return m
@@ -0,0 +1,172 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: cce3ec35a331
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .technicalindicatorresponse import (
7
+ TechnicalIndicatorResponse,
8
+ TechnicalIndicatorResponseTypedDict,
9
+ )
10
+ from .technicalindicatortype import TechnicalIndicatorType
11
+ from enum import Enum
12
+ from finance_dev import models, utils
13
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
14
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
15
+ import pydantic
16
+ from pydantic import field_serializer, model_serializer
17
+ from typing import Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class GetTechnicalIndicatorResolution(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
23
+
24
+ ONE = "1"
25
+ FIVE = "5"
26
+ FIFTEEN = "15"
27
+ THIRTY = "30"
28
+ SIXTY = "60"
29
+ D = "D"
30
+ W = "W"
31
+ M = "M"
32
+
33
+
34
+ class GetTechnicalIndicatorRequestTypedDict(TypedDict):
35
+ symbol: str
36
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
37
+ resolution: GetTechnicalIndicatorResolution
38
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
39
+ indicator: TechnicalIndicatorType
40
+ r"""Which technical indicator to compute. Common picks: `sma` (simple moving average), `ema` (exponential moving average), `rsi` (relative strength index), `macd` (moving-average convergence-divergence), `bbands` (Bollinger Bands). See `TechnicalIndicatorType` for the full list of supported slugs."""
41
+ from_: int
42
+ r"""Start timestamp (Unix seconds)"""
43
+ to: int
44
+ r"""End timestamp (Unix seconds)"""
45
+ timeperiod: NotRequired[int]
46
+ r"""(Optional) Period for SMA/RSI/BBANDS"""
47
+ fast_period: NotRequired[int]
48
+ r"""MACD fast EMA length, in bars. The shorter of the two moving averages used to compute MACD. Standard value is 12. Only used when `indicator=macd`."""
49
+ slow_period: NotRequired[int]
50
+ r"""MACD slow EMA length, in bars. The longer of the two moving averages used to compute MACD. Standard value is 26. Only used when `indicator=macd`."""
51
+ signal_period: NotRequired[int]
52
+ r"""MACD signal EMA length, in bars. Used to smooth the MACD line into the signal line; crossovers between the two are the basic MACD trading cue. Standard value is 9. Only used when `indicator=macd`."""
53
+
54
+
55
+ class GetTechnicalIndicatorRequest(BaseModel):
56
+ symbol: Annotated[
57
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
58
+ ]
59
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
60
+
61
+ resolution: Annotated[
62
+ GetTechnicalIndicatorResolution,
63
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
64
+ ]
65
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
66
+
67
+ indicator: Annotated[
68
+ TechnicalIndicatorType,
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ]
71
+ r"""Which technical indicator to compute. Common picks: `sma` (simple moving average), `ema` (exponential moving average), `rsi` (relative strength index), `macd` (moving-average convergence-divergence), `bbands` (Bollinger Bands). See `TechnicalIndicatorType` for the full list of supported slugs."""
72
+
73
+ from_: Annotated[
74
+ int,
75
+ pydantic.Field(alias="from"),
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ]
78
+ r"""Start timestamp (Unix seconds)"""
79
+
80
+ to: Annotated[
81
+ int, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
82
+ ]
83
+ r"""End timestamp (Unix seconds)"""
84
+
85
+ timeperiod: Annotated[
86
+ Optional[int],
87
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
88
+ ] = None
89
+ r"""(Optional) Period for SMA/RSI/BBANDS"""
90
+
91
+ fast_period: Annotated[
92
+ Optional[int],
93
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
94
+ ] = None
95
+ r"""MACD fast EMA length, in bars. The shorter of the two moving averages used to compute MACD. Standard value is 12. Only used when `indicator=macd`."""
96
+
97
+ slow_period: Annotated[
98
+ Optional[int],
99
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
100
+ ] = None
101
+ r"""MACD slow EMA length, in bars. The longer of the two moving averages used to compute MACD. Standard value is 26. Only used when `indicator=macd`."""
102
+
103
+ signal_period: Annotated[
104
+ Optional[int],
105
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
106
+ ] = None
107
+ r"""MACD signal EMA length, in bars. Used to smooth the MACD line into the signal line; crossovers between the two are the basic MACD trading cue. Standard value is 9. Only used when `indicator=macd`."""
108
+
109
+ @field_serializer("resolution")
110
+ def serialize_resolution(self, value):
111
+ if isinstance(value, str):
112
+ try:
113
+ return models.GetTechnicalIndicatorResolution(value)
114
+ except ValueError:
115
+ return value
116
+ return value
117
+
118
+ @field_serializer("indicator")
119
+ def serialize_indicator(self, value):
120
+ if isinstance(value, str):
121
+ try:
122
+ return models.TechnicalIndicatorType(value)
123
+ except ValueError:
124
+ return value
125
+ return value
126
+
127
+ @model_serializer(mode="wrap")
128
+ def serialize_model(self, handler):
129
+ optional_fields = set(
130
+ ["timeperiod", "fast_period", "slow_period", "signal_period"]
131
+ )
132
+ serialized = handler(self)
133
+ m = {}
134
+
135
+ for n, f in type(self).model_fields.items():
136
+ k = f.alias or n
137
+ val = serialized.get(k, serialized.get(n))
138
+
139
+ if val != UNSET_SENTINEL:
140
+ if val is not None or k not in optional_fields:
141
+ m[k] = val
142
+
143
+ return m
144
+
145
+
146
+ class GetTechnicalIndicatorResponseTypedDict(TypedDict):
147
+ http_meta: HTTPMetadataTypedDict
148
+ technical_indicator_response: NotRequired[TechnicalIndicatorResponseTypedDict]
149
+ r"""Successful response"""
150
+
151
+
152
+ class GetTechnicalIndicatorResponse(BaseModel):
153
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
154
+
155
+ technical_indicator_response: Optional[TechnicalIndicatorResponse] = None
156
+ r"""Successful response"""
157
+
158
+ @model_serializer(mode="wrap")
159
+ def serialize_model(self, handler):
160
+ optional_fields = set(["TechnicalIndicatorResponse"])
161
+ serialized = handler(self)
162
+ m = {}
163
+
164
+ for n, f in type(self).model_fields.items():
165
+ k = f.alias or n
166
+ val = serialized.get(k, serialized.get(n))
167
+
168
+ if val != UNSET_SENTINEL:
169
+ if val is not None or k not in optional_fields:
170
+ m[k] = val
171
+
172
+ return m
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 40a5227e7fa9
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .technicalpatternsresponse import (
7
+ TechnicalPatternsResponse,
8
+ TechnicalPatternsResponseTypedDict,
9
+ )
10
+ from enum import Enum
11
+ from finance_dev import models, utils
12
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
13
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
14
+ import pydantic
15
+ from pydantic import field_serializer, model_serializer
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class GetTechnicalPatternsResolution(str, Enum, metaclass=utils.OpenEnumMeta):
21
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
22
+
23
+ ONE = "1"
24
+ FIVE = "5"
25
+ FIFTEEN = "15"
26
+ THIRTY = "30"
27
+ SIXTY = "60"
28
+ D = "D"
29
+ W = "W"
30
+ M = "M"
31
+
32
+
33
+ class GetTechnicalPatternsRequestTypedDict(TypedDict):
34
+ symbol: str
35
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
36
+ resolution: GetTechnicalPatternsResolution
37
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
38
+
39
+
40
+ class GetTechnicalPatternsRequest(BaseModel):
41
+ symbol: Annotated[
42
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
43
+ ]
44
+ r"""Stock ticker to query. Send the plain uppercase symbol exactly as you'd type it on a brokerage screen, e.g. `AAPL`, `MSFT`, `TSLA`."""
45
+
46
+ resolution: Annotated[
47
+ GetTechnicalPatternsResolution,
48
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
49
+ ]
50
+ r"""How long each bar covers. Supported values are minutes (`1`, `5`, `15`, `30`, `60`) or daily/weekly/monthly (`D`, `W`, `M`). Other values return 400 Bad Request with error code `VALIDATION_ERROR`."""
51
+
52
+ @field_serializer("resolution")
53
+ def serialize_resolution(self, value):
54
+ if isinstance(value, str):
55
+ try:
56
+ return models.GetTechnicalPatternsResolution(value)
57
+ except ValueError:
58
+ return value
59
+ return value
60
+
61
+
62
+ class GetTechnicalPatternsResponseTypedDict(TypedDict):
63
+ http_meta: HTTPMetadataTypedDict
64
+ technical_patterns_response: NotRequired[TechnicalPatternsResponseTypedDict]
65
+ r"""Successful response"""
66
+
67
+
68
+ class GetTechnicalPatternsResponse(BaseModel):
69
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
70
+
71
+ technical_patterns_response: Optional[TechnicalPatternsResponse] = None
72
+ r"""Successful response"""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(["TechnicalPatternsResponse"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k, serialized.get(n))
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if val is not None or k not in optional_fields:
86
+ m[k] = val
87
+
88
+ return m
@@ -0,0 +1,112 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e1503f43936d
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .tenderofferidentifiertype import TenderOfferIdentifierType
7
+ from .tenderoffersresponse import TenderOffersResponse, TenderOffersResponseTypedDict
8
+ from datetime import date
9
+ from finance_dev import models
10
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
11
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
12
+ import pydantic
13
+ from pydantic import field_serializer, model_serializer
14
+ from typing import Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetTenderOffersRequestTypedDict(TypedDict):
19
+ identifier: str
20
+ r"""Identifier value for the company you're querying. The format depends on `identifierType`:
21
+ - `Symbol` — exchange ticker (e.g. `AAPL`).
22
+ - `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
23
+ - `ISIN` — 12-character international identifier (e.g. `US0378331005`).
24
+ - `SEDOL` — 7-character UK identifier.
25
+ - `Valoren` — Swiss security identifier.
26
+ - `FIGI` — Bloomberg Financial Instrument Global Identifier.
27
+ - `CompositeFIGI` — country-level composite FIGI.
28
+
29
+ Must match the kind selected in `identifierType`.
30
+ """
31
+ identifier_type: TenderOfferIdentifierType
32
+ r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
33
+ start_date: date
34
+ r"""Start of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
35
+ end_date: date
36
+ r"""End of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
37
+
38
+
39
+ class GetTenderOffersRequest(BaseModel):
40
+ identifier: Annotated[
41
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
42
+ ]
43
+ r"""Identifier value for the company you're querying. The format depends on `identifierType`:
44
+ - `Symbol` — exchange ticker (e.g. `AAPL`).
45
+ - `CUSIP` — 9-character U.S./Canadian identifier (e.g. `037833100`).
46
+ - `ISIN` — 12-character international identifier (e.g. `US0378331005`).
47
+ - `SEDOL` — 7-character UK identifier.
48
+ - `Valoren` — Swiss security identifier.
49
+ - `FIGI` — Bloomberg Financial Instrument Global Identifier.
50
+ - `CompositeFIGI` — country-level composite FIGI.
51
+
52
+ Must match the kind selected in `identifierType`.
53
+ """
54
+
55
+ identifier_type: Annotated[
56
+ TenderOfferIdentifierType,
57
+ pydantic.Field(alias="identifierType"),
58
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
59
+ ]
60
+ r"""Tells the API how to interpret `identifier`. See `TenderOfferIdentifierType` for the full set of supported values and what each one means."""
61
+
62
+ start_date: Annotated[
63
+ date,
64
+ pydantic.Field(alias="startDate"),
65
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
66
+ ]
67
+ r"""Start of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-01-01`)."""
68
+
69
+ end_date: Annotated[
70
+ date,
71
+ pydantic.Field(alias="endDate"),
72
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
73
+ ]
74
+ r"""End of the tender-offer announcement window, inclusive. Format: `YYYY-MM-DD` (e.g. `2024-12-31`)."""
75
+
76
+ @field_serializer("identifier_type")
77
+ def serialize_identifier_type(self, value):
78
+ if isinstance(value, str):
79
+ try:
80
+ return models.TenderOfferIdentifierType(value)
81
+ except ValueError:
82
+ return value
83
+ return value
84
+
85
+
86
+ class GetTenderOffersResponseTypedDict(TypedDict):
87
+ http_meta: HTTPMetadataTypedDict
88
+ tender_offers_response: NotRequired[TenderOffersResponseTypedDict]
89
+ r"""Tender offers data."""
90
+
91
+
92
+ class GetTenderOffersResponse(BaseModel):
93
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
94
+
95
+ tender_offers_response: Optional[TenderOffersResponse] = None
96
+ r"""Tender offers data."""
97
+
98
+ @model_serializer(mode="wrap")
99
+ def serialize_model(self, handler):
100
+ optional_fields = set(["TenderOffersResponse"])
101
+ serialized = handler(self)
102
+ m = {}
103
+
104
+ for n, f in type(self).model_fields.items():
105
+ k = f.alias or n
106
+ val = serialized.get(k, serialized.get(n))
107
+
108
+ if val != UNSET_SENTINEL:
109
+ if val is not None or k not in optional_fields:
110
+ m[k] = val
111
+
112
+ return m
@@ -0,0 +1,104 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: bf0c140979e0
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .tickchartbars import TickChartBars, TickChartBarsTypedDict
7
+ from .tickresolution import TickResolution
8
+ from finance_dev import models
9
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
10
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
11
+ import pydantic
12
+ from pydantic import field_serializer, model_serializer
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GetTickHistoryRequestTypedDict(TypedDict):
18
+ symbol: str
19
+ r"""Symbol to fetch tick bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities."""
20
+ resolution: TickResolution
21
+ r"""Tick bar size: the number of trades that make up one bar."""
22
+ countback: NotRequired[int]
23
+ r"""How many bars to return, counting back from the most recent bar (or from `cursor`, if provided). Defaults to 300 when omitted. The maximum depends on `resolution`: each call is bounded by a fixed per-request trade budget, so low-count ticks (e.g. `1T`) can return up to 5000 bars, while high-count ticks (e.g. `1000T`) may cap out around 50. Requests above the resolution's maximum are silently reduced to it — this is normal, not an error. Use the `cursor` field to keep loading further back until you have as much history as you need."""
24
+ cursor: NotRequired[str]
25
+ r"""Pagination token for loading OLDER bars, used when a user scrolls a chart backward in time. Omit this parameter for the initial chart load, which returns the most recent bars. To load the page before that, pass the `nextTo` value from the previous response as `cursor`. Treat this value as opaque — always pass it back exactly as received; do not attempt to construct, decode, or modify it."""
26
+
27
+
28
+ class GetTickHistoryRequest(BaseModel):
29
+ symbol: Annotated[
30
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
31
+ ]
32
+ r"""Symbol to fetch tick bars for. Use the exact symbol returned by symbol search, such as `AAPL` for equities."""
33
+
34
+ resolution: Annotated[
35
+ TickResolution,
36
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
37
+ ]
38
+ r"""Tick bar size: the number of trades that make up one bar."""
39
+
40
+ countback: Annotated[
41
+ Optional[int],
42
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
43
+ ] = 300
44
+ r"""How many bars to return, counting back from the most recent bar (or from `cursor`, if provided). Defaults to 300 when omitted. The maximum depends on `resolution`: each call is bounded by a fixed per-request trade budget, so low-count ticks (e.g. `1T`) can return up to 5000 bars, while high-count ticks (e.g. `1000T`) may cap out around 50. Requests above the resolution's maximum are silently reduced to it — this is normal, not an error. Use the `cursor` field to keep loading further back until you have as much history as you need."""
45
+
46
+ cursor: Annotated[
47
+ Optional[str],
48
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
49
+ ] = None
50
+ r"""Pagination token for loading OLDER bars, used when a user scrolls a chart backward in time. Omit this parameter for the initial chart load, which returns the most recent bars. To load the page before that, pass the `nextTo` value from the previous response as `cursor`. Treat this value as opaque — always pass it back exactly as received; do not attempt to construct, decode, or modify it."""
51
+
52
+ @field_serializer("resolution")
53
+ def serialize_resolution(self, value):
54
+ if isinstance(value, str):
55
+ try:
56
+ return models.TickResolution(value)
57
+ except ValueError:
58
+ return value
59
+ return value
60
+
61
+ @model_serializer(mode="wrap")
62
+ def serialize_model(self, handler):
63
+ optional_fields = set(["countback", "cursor"])
64
+ serialized = handler(self)
65
+ m = {}
66
+
67
+ for n, f in type(self).model_fields.items():
68
+ k = f.alias or n
69
+ val = serialized.get(k, serialized.get(n))
70
+
71
+ if val != UNSET_SENTINEL:
72
+ if val is not None or k not in optional_fields:
73
+ m[k] = val
74
+
75
+ return m
76
+
77
+
78
+ class GetTickHistoryResponseTypedDict(TypedDict):
79
+ http_meta: HTTPMetadataTypedDict
80
+ tick_chart_bars: NotRequired[TickChartBarsTypedDict]
81
+ r"""Tick bars in TradingView UDF format, extended with a pagination cursor. Always returns 200; check **s** (status): `ok` = data in t, o, h, l, c, v (and usually `nextTo`); `no_data` = no matching trade activity, and `nextTo` will be absent — stop requesting further history; `error` = errmsg contains reason (e.g. invalid resolution or malformed cursor)."""
82
+
83
+
84
+ class GetTickHistoryResponse(BaseModel):
85
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
86
+
87
+ tick_chart_bars: Optional[TickChartBars] = None
88
+ r"""Tick bars in TradingView UDF format, extended with a pagination cursor. Always returns 200; check **s** (status): `ok` = data in t, o, h, l, c, v (and usually `nextTo`); `no_data` = no matching trade activity, and `nextTo` will be absent — stop requesting further history; `error` = errmsg contains reason (e.g. invalid resolution or malformed cursor)."""
89
+
90
+ @model_serializer(mode="wrap")
91
+ def serialize_model(self, handler):
92
+ optional_fields = set(["TickChartBars"])
93
+ serialized = handler(self)
94
+ m = {}
95
+
96
+ for n, f in type(self).model_fields.items():
97
+ k = f.alias or n
98
+ val = serialized.get(k, serialized.get(n))
99
+
100
+ if val != UNSET_SENTINEL:
101
+ if val is not None or k not in optional_fields:
102
+ m[k] = val
103
+
104
+ return m
@@ -0,0 +1,78 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 288a74785eef
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .symboldetails import SymbolDetails, SymbolDetailsTypedDict
7
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
8
+ from finance_dev.utils import FieldMetadata, QueryParamMetadata
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from typing import List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GetTopGainersRequestTypedDict(TypedDict):
16
+ limit: NotRequired[int]
17
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
18
+ size: NotRequired[int]
19
+ r"""Alias for limit. Ignored when limit is supplied."""
20
+
21
+
22
+ class GetTopGainersRequest(BaseModel):
23
+ limit: Annotated[
24
+ Optional[int],
25
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
26
+ ] = 10
27
+ r"""Maximum number of results to return. Use smaller values for UI pages and larger values for exports within API limits. (optional, default 10)"""
28
+
29
+ size: Annotated[
30
+ Optional[int],
31
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
32
+ ] = 10
33
+ r"""Alias for limit. Ignored when limit is supplied."""
34
+
35
+ @model_serializer(mode="wrap")
36
+ def serialize_model(self, handler):
37
+ optional_fields = set(["limit", "size"])
38
+ serialized = handler(self)
39
+ m = {}
40
+
41
+ for n, f in type(self).model_fields.items():
42
+ k = f.alias or n
43
+ val = serialized.get(k, serialized.get(n))
44
+
45
+ if val != UNSET_SENTINEL:
46
+ if val is not None or k not in optional_fields:
47
+ m[k] = val
48
+
49
+ return m
50
+
51
+
52
+ class GetTopGainersResponseTypedDict(TypedDict):
53
+ http_meta: HTTPMetadataTypedDict
54
+ symbol_details: NotRequired[List[SymbolDetailsTypedDict]]
55
+ r"""Top gaining stocks retrieved successfully"""
56
+
57
+
58
+ class GetTopGainersResponse(BaseModel):
59
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
60
+
61
+ symbol_details: Optional[List[SymbolDetails]] = None
62
+ r"""Top gaining stocks retrieved successfully"""
63
+
64
+ @model_serializer(mode="wrap")
65
+ def serialize_model(self, handler):
66
+ optional_fields = set(["SymbolDetails"])
67
+ serialized = handler(self)
68
+ m = {}
69
+
70
+ for n, f in type(self).model_fields.items():
71
+ k = f.alias or n
72
+ val = serialized.get(k, serialized.get(n))
73
+
74
+ if val != UNSET_SENTINEL:
75
+ if val is not None or k not in optional_fields:
76
+ m[k] = val
77
+
78
+ return m