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,140 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 1e77bb9515b6
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .indexbarresponse import IndexBarResponse, IndexBarResponseTypedDict
7
+ from .indicesidentifiertype import IndicesIdentifierType
8
+ from enum import Enum
9
+ from finance_dev import models, utils
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 GetIndexBarPrecision(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
20
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
21
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
22
+ """
23
+
24
+ MINUTES = "Minutes"
25
+ HOURS = "Hours"
26
+
27
+
28
+ class GetIndexBarRequestTypedDict(TypedDict):
29
+ identifier: str
30
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM` for the S&P 500 in the CBOE CSMI group). For other identifier types (CUSIP, ISIN, etc.), set `identifierType` accordingly."""
31
+ end_time: str
32
+ r"""End time for the bar window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 10:30 am`)."""
33
+ identifier_type: NotRequired[IndicesIdentifierType]
34
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
35
+ precision: NotRequired[GetIndexBarPrecision]
36
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
37
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
38
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
39
+ """
40
+ period: NotRequired[int]
41
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Examples: `precision=Minutes` + `period=5` = 5-minute bars; `precision=Hours` + `period=4` = 4-hour bars."""
42
+
43
+
44
+ class GetIndexBarRequest(BaseModel):
45
+ identifier: Annotated[
46
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
47
+ ]
48
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM` for the S&P 500 in the CBOE CSMI group). For other identifier types (CUSIP, ISIN, etc.), set `identifierType` accordingly."""
49
+
50
+ end_time: Annotated[
51
+ str,
52
+ pydantic.Field(alias="endTime"),
53
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
54
+ ]
55
+ r"""End time for the bar window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 10:30 am`)."""
56
+
57
+ identifier_type: Annotated[
58
+ Optional[IndicesIdentifierType],
59
+ pydantic.Field(alias="identifierType"),
60
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
61
+ ] = IndicesIdentifierType.SYMBOL
62
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
63
+
64
+ precision: Annotated[
65
+ Optional[GetIndexBarPrecision],
66
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
67
+ ] = None
68
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
69
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
70
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
71
+ """
72
+
73
+ period: Annotated[
74
+ Optional[int],
75
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
76
+ ] = None
77
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Examples: `precision=Minutes` + `period=5` = 5-minute bars; `precision=Hours` + `period=4` = 4-hour bars."""
78
+
79
+ @field_serializer("identifier_type")
80
+ def serialize_identifier_type(self, value):
81
+ if isinstance(value, str):
82
+ try:
83
+ return models.IndicesIdentifierType(value)
84
+ except ValueError:
85
+ return value
86
+ return value
87
+
88
+ @field_serializer("precision")
89
+ def serialize_precision(self, value):
90
+ if isinstance(value, str):
91
+ try:
92
+ return models.GetIndexBarPrecision(value)
93
+ except ValueError:
94
+ return value
95
+ return value
96
+
97
+ @model_serializer(mode="wrap")
98
+ def serialize_model(self, handler):
99
+ optional_fields = set(["identifierType", "precision", "period"])
100
+ serialized = handler(self)
101
+ m = {}
102
+
103
+ for n, f in type(self).model_fields.items():
104
+ k = f.alias or n
105
+ val = serialized.get(k, serialized.get(n))
106
+
107
+ if val != UNSET_SENTINEL:
108
+ if val is not None or k not in optional_fields:
109
+ m[k] = val
110
+
111
+ return m
112
+
113
+
114
+ class GetIndexBarResponseTypedDict(TypedDict):
115
+ http_meta: HTTPMetadataTypedDict
116
+ index_bar_response: NotRequired[IndexBarResponseTypedDict]
117
+ r"""Successful response"""
118
+
119
+
120
+ class GetIndexBarResponse(BaseModel):
121
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
122
+
123
+ index_bar_response: Optional[IndexBarResponse] = None
124
+ r"""Successful response"""
125
+
126
+ @model_serializer(mode="wrap")
127
+ def serialize_model(self, handler):
128
+ optional_fields = set(["IndexBarResponse"])
129
+ serialized = handler(self)
130
+ m = {}
131
+
132
+ for n, f in type(self).model_fields.items():
133
+ k = f.alias or n
134
+ val = serialized.get(k, serialized.get(n))
135
+
136
+ if val != UNSET_SENTINEL:
137
+ if val is not None or k not in optional_fields:
138
+ m[k] = val
139
+
140
+ return m
@@ -0,0 +1,149 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b7fb62657df6
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .indexbarsresponse import IndexBarsResponse, IndexBarsResponseTypedDict
7
+ from .indicesidentifiertype import IndicesIdentifierType
8
+ from enum import Enum
9
+ from finance_dev import models, utils
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 GetIndexBarsPrecision(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
20
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
21
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
22
+ """
23
+
24
+ MINUTES = "Minutes"
25
+ HOURS = "Hours"
26
+
27
+
28
+ class GetIndexBarsRequestTypedDict(TypedDict):
29
+ identifier: str
30
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM`). For other identifier types, set `identifierType` accordingly."""
31
+ start_time: str
32
+ r"""Start of the bars window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 9:30 am`)."""
33
+ end_time: str
34
+ r"""End of the bars window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 4:00 pm`)."""
35
+ identifier_type: NotRequired[IndicesIdentifierType]
36
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
37
+ precision: NotRequired[GetIndexBarsPrecision]
38
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
39
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
40
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
41
+ """
42
+ period: NotRequired[int]
43
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Examples: `precision=Minutes` + `period=5` = 5-minute bars; `precision=Hours` + `period=4` = 4-hour bars."""
44
+
45
+
46
+ class GetIndexBarsRequest(BaseModel):
47
+ identifier: Annotated[
48
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
49
+ ]
50
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM`). For other identifier types, set `identifierType` accordingly."""
51
+
52
+ start_time: Annotated[
53
+ str,
54
+ pydantic.Field(alias="startTime"),
55
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
56
+ ]
57
+ r"""Start of the bars window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 9:30 am`)."""
58
+
59
+ end_time: Annotated[
60
+ str,
61
+ pydantic.Field(alias="endTime"),
62
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
+ ]
64
+ r"""End of the bars window. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/22/2025 4:00 pm`)."""
65
+
66
+ identifier_type: Annotated[
67
+ Optional[IndicesIdentifierType],
68
+ pydantic.Field(alias="identifierType"),
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ] = IndicesIdentifierType.SYMBOL
71
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
72
+
73
+ precision: Annotated[
74
+ Optional[GetIndexBarsPrecision],
75
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
76
+ ] = None
77
+ r"""How long each bar covers. Pair with `period` to set the exact size (e.g. `precision=Minutes`, `period=5` = 5-minute bars). Allowed values:
78
+ - `Minutes` — minute bars (combine with `period` for 1, 5, 15, 30-minute candles).
79
+ - `Hours` — hour bars (combine with `period` for 1, 2, 4-hour candles).
80
+ """
81
+
82
+ period: Annotated[
83
+ Optional[int],
84
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
85
+ ] = None
86
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Examples: `precision=Minutes` + `period=5` = 5-minute bars; `precision=Hours` + `period=4` = 4-hour bars."""
87
+
88
+ @field_serializer("identifier_type")
89
+ def serialize_identifier_type(self, value):
90
+ if isinstance(value, str):
91
+ try:
92
+ return models.IndicesIdentifierType(value)
93
+ except ValueError:
94
+ return value
95
+ return value
96
+
97
+ @field_serializer("precision")
98
+ def serialize_precision(self, value):
99
+ if isinstance(value, str):
100
+ try:
101
+ return models.GetIndexBarsPrecision(value)
102
+ except ValueError:
103
+ return value
104
+ return value
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = set(["identifierType", "precision", "period"])
109
+ serialized = handler(self)
110
+ m = {}
111
+
112
+ for n, f in type(self).model_fields.items():
113
+ k = f.alias or n
114
+ val = serialized.get(k, serialized.get(n))
115
+
116
+ if val != UNSET_SENTINEL:
117
+ if val is not None or k not in optional_fields:
118
+ m[k] = val
119
+
120
+ return m
121
+
122
+
123
+ class GetIndexBarsResponseTypedDict(TypedDict):
124
+ http_meta: HTTPMetadataTypedDict
125
+ index_bars_response: NotRequired[IndexBarsResponseTypedDict]
126
+ r"""Successful response"""
127
+
128
+
129
+ class GetIndexBarsResponse(BaseModel):
130
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
131
+
132
+ index_bars_response: Optional[IndexBarsResponse] = None
133
+ r"""Successful response"""
134
+
135
+ @model_serializer(mode="wrap")
136
+ def serialize_model(self, handler):
137
+ optional_fields = set(["IndexBarsResponse"])
138
+ serialized = handler(self)
139
+ m = {}
140
+
141
+ for n, f in type(self).model_fields.items():
142
+ k = f.alias or n
143
+ val = serialized.get(k, serialized.get(n))
144
+
145
+ if val != UNSET_SENTINEL:
146
+ if val is not None or k not in optional_fields:
147
+ m[k] = val
148
+
149
+ return m
@@ -0,0 +1,178 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: b05035f7feed
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .indexchartbarsresponse import (
7
+ IndexChartBarsResponse,
8
+ IndexChartBarsResponseTypedDict,
9
+ )
10
+ from .indicesidentifiertype import IndicesIdentifierType
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 GetIndexChartBarsPrecision(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ r"""How long each chart bar covers. Pair with `period` to set the exact size. Note the singular form (different from `/v1/indices/bar` and `/v1/indices/bars`). Allowed values:
23
+ - `Minute` — minute bars (intraday).
24
+ - `Hour` — hour bars.
25
+ """
26
+
27
+ MINUTE = "Minute"
28
+ HOUR = "Hour"
29
+
30
+
31
+ class GetIndexChartBarsRequestTypedDict(TypedDict):
32
+ identifier: str
33
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM`). For other identifier types, set `identifierType` accordingly."""
34
+ start_time: str
35
+ r"""Start of the chart range, inclusive. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/15/2025 9:00 am`)."""
36
+ end_time: str
37
+ r"""End of the chart range, inclusive. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/15/2025 9:30 am`)."""
38
+ identifier_type: NotRequired[IndicesIdentifierType]
39
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
40
+ precision: NotRequired[GetIndexChartBarsPrecision]
41
+ r"""How long each chart bar covers. Pair with `period` to set the exact size. Note the singular form (different from `/v1/indices/bar` and `/v1/indices/bars`). Allowed values:
42
+ - `Minute` — minute bars (intraday).
43
+ - `Hour` — hour bars.
44
+ """
45
+ period: NotRequired[int]
46
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Example: `precision=Minute` + `period=15` = 15-minute bars."""
47
+ adjustment_method: NotRequired[str]
48
+ r"""How to adjust historical prices for corporate actions like dividends and splits. Pass the literal value supported by the upstream data provider. Omit to leave prices unadjusted."""
49
+ include_extended: NotRequired[bool]
50
+ r"""Include pre-market and after-hours sessions in the returned chart bars. Defaults to `false` (regular hours only). Set `true` when you want a continuous extended-session chart."""
51
+
52
+
53
+ class GetIndexChartBarsRequest(BaseModel):
54
+ identifier: Annotated[
55
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
56
+ ]
57
+ r"""Index identifier to query. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM`). For other identifier types, set `identifierType` accordingly."""
58
+
59
+ start_time: Annotated[
60
+ str,
61
+ pydantic.Field(alias="startTime"),
62
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
63
+ ]
64
+ r"""Start of the chart range, inclusive. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/15/2025 9:00 am`)."""
65
+
66
+ end_time: Annotated[
67
+ str,
68
+ pydantic.Field(alias="endTime"),
69
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
70
+ ]
71
+ r"""End of the chart range, inclusive. Format: `MM/DD/YYYY hh:mm am/pm` in the index's native timezone (e.g. `12/15/2025 9:30 am`)."""
72
+
73
+ identifier_type: Annotated[
74
+ Optional[IndicesIdentifierType],
75
+ pydantic.Field(alias="identifierType"),
76
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
77
+ ] = IndicesIdentifierType.SYMBOL
78
+ r"""How to interpret the value you sent in `identifier`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values."""
79
+
80
+ precision: Annotated[
81
+ Optional[GetIndexChartBarsPrecision],
82
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
83
+ ] = None
84
+ r"""How long each chart bar covers. Pair with `period` to set the exact size. Note the singular form (different from `/v1/indices/bar` and `/v1/indices/bars`). Allowed values:
85
+ - `Minute` — minute bars (intraday).
86
+ - `Hour` — hour bars.
87
+ """
88
+
89
+ period: Annotated[
90
+ Optional[int],
91
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
92
+ ] = None
93
+ r"""Multiplier on `precision` to set the bar size. Defaults to `1`. Example: `precision=Minute` + `period=15` = 15-minute bars."""
94
+
95
+ adjustment_method: Annotated[
96
+ Optional[str],
97
+ pydantic.Field(alias="adjustmentMethod"),
98
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
99
+ ] = None
100
+ r"""How to adjust historical prices for corporate actions like dividends and splits. Pass the literal value supported by the upstream data provider. Omit to leave prices unadjusted."""
101
+
102
+ include_extended: Annotated[
103
+ Optional[bool],
104
+ pydantic.Field(alias="includeExtended"),
105
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
106
+ ] = False
107
+ r"""Include pre-market and after-hours sessions in the returned chart bars. Defaults to `false` (regular hours only). Set `true` when you want a continuous extended-session chart."""
108
+
109
+ @field_serializer("identifier_type")
110
+ def serialize_identifier_type(self, value):
111
+ if isinstance(value, str):
112
+ try:
113
+ return models.IndicesIdentifierType(value)
114
+ except ValueError:
115
+ return value
116
+ return value
117
+
118
+ @field_serializer("precision")
119
+ def serialize_precision(self, value):
120
+ if isinstance(value, str):
121
+ try:
122
+ return models.GetIndexChartBarsPrecision(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
+ [
131
+ "identifierType",
132
+ "precision",
133
+ "period",
134
+ "adjustmentMethod",
135
+ "includeExtended",
136
+ ]
137
+ )
138
+ serialized = handler(self)
139
+ m = {}
140
+
141
+ for n, f in type(self).model_fields.items():
142
+ k = f.alias or n
143
+ val = serialized.get(k, serialized.get(n))
144
+
145
+ if val != UNSET_SENTINEL:
146
+ if val is not None or k not in optional_fields:
147
+ m[k] = val
148
+
149
+ return m
150
+
151
+
152
+ class GetIndexChartBarsResponseTypedDict(TypedDict):
153
+ http_meta: HTTPMetadataTypedDict
154
+ index_chart_bars_response: NotRequired[IndexChartBarsResponseTypedDict]
155
+ r"""Successful response"""
156
+
157
+
158
+ class GetIndexChartBarsResponse(BaseModel):
159
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
160
+
161
+ index_chart_bars_response: Optional[IndexChartBarsResponse] = None
162
+ r"""Successful response"""
163
+
164
+ @model_serializer(mode="wrap")
165
+ def serialize_model(self, handler):
166
+ optional_fields = set(["IndexChartBarsResponse"])
167
+ serialized = handler(self)
168
+ m = {}
169
+
170
+ for n, f in type(self).model_fields.items():
171
+ k = f.alias or n
172
+ val = serialized.get(k, serialized.get(n))
173
+
174
+ if val != UNSET_SENTINEL:
175
+ if val is not None or k not in optional_fields:
176
+ m[k] = val
177
+
178
+ return m
@@ -0,0 +1,94 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 37c0757146cf
3
+
4
+ from __future__ import annotations
5
+ from .httpmetadata import HTTPMetadata, HTTPMetadataTypedDict
6
+ from .indicesidentifiertype import IndicesIdentifierType
7
+ from .indicesrealtimevaluesresponse import (
8
+ IndicesRealtimeValuesResponse,
9
+ IndicesRealtimeValuesResponseTypedDict,
10
+ )
11
+ from finance_dev import models
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 GetIndexRealtimeValuesRequestTypedDict(TypedDict):
21
+ identifiers: str
22
+ r"""One or more index identifiers to fetch real-time values for, comma-separated. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM,COMP.IND_CBOM,DJI.IND_DJI`). All identifiers in one request must be the same type (set via `identifierType`)."""
23
+ identifier_type: NotRequired[IndicesIdentifierType]
24
+ r"""How to interpret each value in `identifiers`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values. All identifiers in one request must be the same type."""
25
+
26
+
27
+ class GetIndexRealtimeValuesRequest(BaseModel):
28
+ identifiers: Annotated[
29
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
30
+ ]
31
+ r"""One or more index identifiers to fetch real-time values for, comma-separated. For `Symbol`-type identifiers, use the full `<SYMBOL>.<GROUP>` form (e.g. `SPX.IND_CBOM,COMP.IND_CBOM,DJI.IND_DJI`). All identifiers in one request must be the same type (set via `identifierType`)."""
32
+
33
+ identifier_type: Annotated[
34
+ Optional[IndicesIdentifierType],
35
+ pydantic.Field(alias="identifierType"),
36
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
37
+ ] = IndicesIdentifierType.SYMBOL
38
+ r"""How to interpret each value in `identifiers`. Defaults to `Symbol`. See `IndicesIdentifierType` for the full set of accepted values. All identifiers in one request must be the same type."""
39
+
40
+ @field_serializer("identifier_type")
41
+ def serialize_identifier_type(self, value):
42
+ if isinstance(value, str):
43
+ try:
44
+ return models.IndicesIdentifierType(value)
45
+ except ValueError:
46
+ return value
47
+ return value
48
+
49
+ @model_serializer(mode="wrap")
50
+ def serialize_model(self, handler):
51
+ optional_fields = set(["identifierType"])
52
+ serialized = handler(self)
53
+ m = {}
54
+
55
+ for n, f in type(self).model_fields.items():
56
+ k = f.alias or n
57
+ val = serialized.get(k, serialized.get(n))
58
+
59
+ if val != UNSET_SENTINEL:
60
+ if val is not None or k not in optional_fields:
61
+ m[k] = val
62
+
63
+ return m
64
+
65
+
66
+ class GetIndexRealtimeValuesResponseTypedDict(TypedDict):
67
+ http_meta: HTTPMetadataTypedDict
68
+ indices_realtime_values_response: NotRequired[
69
+ IndicesRealtimeValuesResponseTypedDict
70
+ ]
71
+ r"""Successful response. Each item mirrors the single-index realtime shape: identifier, index metadata, and a value object with OHLC, 52-week range, and change fields."""
72
+
73
+
74
+ class GetIndexRealtimeValuesResponse(BaseModel):
75
+ http_meta: Annotated[Optional[HTTPMetadata], pydantic.Field(exclude=True)] = None
76
+
77
+ indices_realtime_values_response: Optional[IndicesRealtimeValuesResponse] = None
78
+ r"""Successful response. Each item mirrors the single-index realtime shape: identifier, index metadata, and a value object with OHLC, 52-week range, and change fields."""
79
+
80
+ @model_serializer(mode="wrap")
81
+ def serialize_model(self, handler):
82
+ optional_fields = set(["IndicesRealtimeValuesResponse"])
83
+ serialized = handler(self)
84
+ m = {}
85
+
86
+ for n, f in type(self).model_fields.items():
87
+ k = f.alias or n
88
+ val = serialized.get(k, serialized.get(n))
89
+
90
+ if val != UNSET_SENTINEL:
91
+ if val is not None or k not in optional_fields:
92
+ m[k] = val
93
+
94
+ return m