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,569 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: e04aa1f1d90d
3
+
4
+ from __future__ import annotations
5
+ from datetime import datetime
6
+ from enum import Enum
7
+ from finance_dev import models, utils
8
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
9
+ import pydantic
10
+ from pydantic import field_serializer, model_serializer
11
+ from typing import Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class EquityDetailsDTOPutCall(str, Enum, metaclass=utils.OpenEnumMeta):
16
+ r"""Option contract type. Empty for non-option instruments. Accepts long or short form:
17
+ - `CALL` or `C` — call option (right to buy at strike).
18
+ - `PUT` or `P` — put option (right to sell at strike).
19
+ """
20
+
21
+ PUT = "PUT"
22
+ CALL = "CALL"
23
+ P = "P"
24
+ C = "C"
25
+
26
+
27
+ class EquityDetailsDTOTypedDict(TypedDict):
28
+ r"""One equity detail object from GET /v1/marketdata/equities/details. Populated from the market-data cache with an automatic fallback. Fields are pointers in the service and omitted from JSON when unset; `hasOptions` and `isETF` are always serialized as booleans. JSON names match the Go tags (e.g. `nyseNetInflow`, `EPSDiluted`, `ytdHighDate`)."""
29
+
30
+ eps3_year_growth_rate: NotRequired[float]
31
+ r"""Three-year earnings-per-share growth rate. Use it to show medium-term earnings growth."""
32
+ eps5_year_growth_rate: NotRequired[float]
33
+ r"""Five-year earnings-per-share growth rate. Use it to show longer-term earnings growth."""
34
+ eps_current_qtr_mean_est: NotRequired[float]
35
+ r"""EPS current quarter mean estimate"""
36
+ eps_current_year_mean_est: NotRequired[float]
37
+ r"""EPS current year mean estimate"""
38
+ eps_diluted: NotRequired[float]
39
+ r"""Diluted earnings per share. Use it for profitability and valuation displays."""
40
+ eps_latest12_month: NotRequired[float]
41
+ r"""Earnings per share over the latest 12 months. Use it for trailing profitability calculations."""
42
+ pe: NotRequired[float]
43
+ r"""Price-to-earnings ratio. Use it as a valuation metric, especially when comparing companies in the same industry."""
44
+ advancers: NotRequired[int]
45
+ r"""Market breadth advancers (if present)"""
46
+ annual_yield: NotRequired[float]
47
+ r"""Annual yield, typically dividend yield when provided. Use it for income-oriented displays."""
48
+ ask_exchange: NotRequired[str]
49
+ r"""Exchange or venue currently showing the best ask. Use it for quote detail or market-structure displays."""
50
+ ask_price: NotRequired[float]
51
+ r"""Lowest current price sellers are asking. Use this as the reference price when the user is buying."""
52
+ ask_size: NotRequired[int]
53
+ r"""Number of shares or contracts available at the current ask price."""
54
+ assets: NotRequired[float]
55
+ r"""Total assets reported for the company. Use it for balance-sheet and financial-strength views."""
56
+ avg_volume4_weeks: NotRequired[int]
57
+ r"""Average trading volume over the last four weeks. Use it to judge liquidity versus today's volume."""
58
+ beta: NotRequired[float]
59
+ r"""Measure of the stock's volatility relative to the broader market. Values above 1 usually move more than the market; below 1 usually move less."""
60
+ bid_exchange: NotRequired[str]
61
+ r"""Exchange or venue currently showing the best bid. Use it for quote detail or market-structure displays."""
62
+ bid_price: NotRequired[float]
63
+ r"""Highest current price buyers are offering. Use this as the reference price when the user is selling."""
64
+ bid_size: NotRequired[int]
65
+ r"""Number of shares or contracts available at the current bid price."""
66
+ change_status: NotRequired[str]
67
+ r"""Feed-provided status describing the latest price movement when available."""
68
+ close_price: NotRequired[float]
69
+ r"""Previous or latest close price from the feed. Use it as the baseline for daily change calculations."""
70
+ decliners: NotRequired[int]
71
+ r"""Number of symbols declining in the related market-breadth snapshot."""
72
+ dividend: NotRequired[float]
73
+ r"""Dividend amount when provided. Use it in income and yield displays."""
74
+ expiration_date: NotRequired[str]
75
+ r"""Option expiration date. Present for option instruments and empty for normal equities."""
76
+ has_options: NotRequired[bool]
77
+ r"""Whether the underlying has listed options"""
78
+ high52_week_date: NotRequired[str]
79
+ r"""Date when the instrument reached its 52-week high. Use it with `high52WeekPrice`."""
80
+ high52_week_price: NotRequired[float]
81
+ r"""Highest price over the last 52 weeks. Use it to show how close the current price is to its yearly high."""
82
+ high_price: NotRequired[float]
83
+ r"""Highest traded price during the current session. Use it for daily range displays."""
84
+ instrument_type: NotRequired[str]
85
+ r"""Instrument category returned by the market data provider, such as Equity or Option. Use it to choose the right UI treatment."""
86
+ is_etf: NotRequired[bool]
87
+ r"""Whether the instrument is an ETF"""
88
+ last_price: NotRequired[float]
89
+ r"""Most recent trade price reported by the feed. Use bid and ask instead when estimating immediate buy or sell execution cost."""
90
+ liabilities: NotRequired[float]
91
+ r"""Total liabilities reported for the company. Use it with assets to evaluate balance-sheet leverage."""
92
+ long_term_debt: NotRequired[float]
93
+ r"""Long-term debt reported for the company. Use it when evaluating leverage and financial risk."""
94
+ low52_week_date: NotRequired[str]
95
+ r"""Date when the instrument reached its 52-week low. Use it with `low52WeekPrice`."""
96
+ low52_week_price: NotRequired[float]
97
+ r"""Lowest price over the last 52 weeks. Use it to show how close the current price is to its yearly low."""
98
+ low_price: NotRequired[float]
99
+ r"""Lowest traded price during the current session. Use it for daily range displays."""
100
+ market_cap: NotRequired[int]
101
+ r"""Company market value. Use it for company size, peer comparison, and screening."""
102
+ mid_price: NotRequired[float]
103
+ r"""Midpoint between bid and ask. Use it as a neutral reference price, not as a guaranteed execution price."""
104
+ name: NotRequired[str]
105
+ r"""Company or instrument name"""
106
+ nasdaq_buy_volume: NotRequired[int]
107
+ r"""Reported Nasdaq buy-side volume. Use it only for advanced market-flow displays."""
108
+ nasdaq_net_in_flow: NotRequired[float]
109
+ r"""Net buy versus sell flow for Nasdaq-listed activity when provided by the feed."""
110
+ nasdaq_sell_volume: NotRequired[int]
111
+ r"""Reported Nasdaq sell-side volume. Use it only for advanced market-flow displays."""
112
+ net_change: NotRequired[float]
113
+ r"""Price change versus the previous close. Use it for daily gain/loss displays."""
114
+ nyse_buy_volume: NotRequired[int]
115
+ r"""Reported NYSE buy-side volume. Use it only for advanced market-flow displays."""
116
+ nyse_net_inflow: NotRequired[float]
117
+ r"""Net buy versus sell flow for NYSE-listed activity when provided by the feed."""
118
+ nyse_sell_volume: NotRequired[int]
119
+ r"""Reported NYSE sell-side volume. Use it only for advanced market-flow displays."""
120
+ open_interest: NotRequired[int]
121
+ r"""Number of outstanding option contracts for this contract. Use it to gauge options liquidity."""
122
+ open_price: NotRequired[float]
123
+ r"""Price at the start of the current trading session. Use it to compare where the stock opened versus where it trades now."""
124
+ pct_held_by_institution: NotRequired[float]
125
+ r"""Percent held by institutions"""
126
+ price: NotRequired[float]
127
+ r"""Primary display price from the market data feed. Use it for summary cards when you do not need bid/ask detail."""
128
+ put_call: NotRequired[EquityDetailsDTOPutCall]
129
+ r"""Option contract type. Empty for non-option instruments. Accepts long or short form:
130
+ - `CALL` or `C` — call option (right to buy at strike).
131
+ - `PUT` or `P` — put option (right to sell at strike).
132
+ """
133
+ quote_timestamp: NotRequired[datetime]
134
+ r"""RFC 3339 timestamp of the bid/ask quote. Use it to show quote freshness."""
135
+ shares_outstanding: NotRequired[int]
136
+ r"""Total company shares outstanding. Use it in market capitalization and ownership calculations."""
137
+ short_interest: NotRequired[int]
138
+ r"""Shares currently sold short when available. Use it to show bearish positioning or short-interest analysis."""
139
+ short_sale_restricted: NotRequired[int]
140
+ r"""Short sale restricted flag/value"""
141
+ sic_code: NotRequired[int]
142
+ r"""Standard Industrial Classification code for the company. Use it for industry classification or filtering."""
143
+ size: NotRequired[int]
144
+ r"""Number of shares or contracts in the last reported trade."""
145
+ spread: NotRequired[float]
146
+ r"""Difference between ask and bid. Use it to explain immediate trading cost on a market order."""
147
+ strike_price: NotRequired[float]
148
+ r"""Option strike price. Present for option instruments and empty for normal equities."""
149
+ symbol: NotRequired[str]
150
+ r"""Ticker symbol this detail record belongs to. Use it to match the response item back to your requested symbol."""
151
+ tick: NotRequired[int]
152
+ r"""Feed tick direction or tick value when provided. Use it only when your UI needs trade direction indicators."""
153
+ total_symbols: NotRequired[int]
154
+ r"""Total symbols counted in the market-breadth snapshot."""
155
+ total_volume: NotRequired[int]
156
+ r"""Total shares or contracts traded during the current session. Use it to show liquidity and activity."""
157
+ trade_exchange: NotRequired[str]
158
+ r"""Exchange or venue where the last trade was reported. Use it for advanced quote detail displays."""
159
+ trade_seq: NotRequired[int]
160
+ r"""Feed sequence number for the last trade. Use it only for advanced debugging or ordering feed updates."""
161
+ trade_timestamp: NotRequired[datetime]
162
+ r"""RFC 3339 timestamp of the last trade, including its UTC offset. Omitted when the feed timestamp is missing or invalid."""
163
+ type: NotRequired[str]
164
+ r"""Provider-supplied market data type for this snapshot. Treat this as a feed classification string rather than an order type."""
165
+ unchanged: NotRequired[int]
166
+ r"""Number of symbols unchanged in the related market-breadth snapshot."""
167
+ underlying_symbol: NotRequired[str]
168
+ r"""Underlying symbol (options)"""
169
+ year_end_close: NotRequired[float]
170
+ r"""Closing price at the prior year end when available. Use it for year-to-date comparisons."""
171
+ ytd_high: NotRequired[float]
172
+ r"""Highest price since the start of the current calendar year."""
173
+ ytd_high_date: NotRequired[str]
174
+ r"""Date when the instrument reached its year-to-date high."""
175
+ ytd_low: NotRequired[float]
176
+ r"""Lowest price since the start of the current calendar year."""
177
+ ytd_low_date: NotRequired[str]
178
+ r"""Date when the instrument reached its year-to-date low."""
179
+
180
+
181
+ class EquityDetailsDTO(BaseModel):
182
+ r"""One equity detail object from GET /v1/marketdata/equities/details. Populated from the market-data cache with an automatic fallback. Fields are pointers in the service and omitted from JSON when unset; `hasOptions` and `isETF` are always serialized as booleans. JSON names match the Go tags (e.g. `nyseNetInflow`, `EPSDiluted`, `ytdHighDate`)."""
183
+
184
+ eps3_year_growth_rate: Annotated[
185
+ Optional[float], pydantic.Field(alias="EPS3YearGrowthRate")
186
+ ] = None
187
+ r"""Three-year earnings-per-share growth rate. Use it to show medium-term earnings growth."""
188
+
189
+ eps5_year_growth_rate: Annotated[
190
+ Optional[float], pydantic.Field(alias="EPS5YearGrowthRate")
191
+ ] = None
192
+ r"""Five-year earnings-per-share growth rate. Use it to show longer-term earnings growth."""
193
+
194
+ eps_current_qtr_mean_est: Annotated[
195
+ Optional[float], pydantic.Field(alias="EPSCurrentQtrMeanEst")
196
+ ] = None
197
+ r"""EPS current quarter mean estimate"""
198
+
199
+ eps_current_year_mean_est: Annotated[
200
+ Optional[float], pydantic.Field(alias="EPSCurrentYearMeanEst")
201
+ ] = None
202
+ r"""EPS current year mean estimate"""
203
+
204
+ eps_diluted: Annotated[Optional[float], pydantic.Field(alias="EPSDiluted")] = None
205
+ r"""Diluted earnings per share. Use it for profitability and valuation displays."""
206
+
207
+ eps_latest12_month: Annotated[
208
+ Optional[float], pydantic.Field(alias="EPSLatest12Month")
209
+ ] = None
210
+ r"""Earnings per share over the latest 12 months. Use it for trailing profitability calculations."""
211
+
212
+ pe: Annotated[Optional[float], pydantic.Field(alias="PE")] = None
213
+ r"""Price-to-earnings ratio. Use it as a valuation metric, especially when comparing companies in the same industry."""
214
+
215
+ advancers: Optional[int] = None
216
+ r"""Market breadth advancers (if present)"""
217
+
218
+ annual_yield: Annotated[Optional[float], pydantic.Field(alias="annualYield")] = None
219
+ r"""Annual yield, typically dividend yield when provided. Use it for income-oriented displays."""
220
+
221
+ ask_exchange: Annotated[Optional[str], pydantic.Field(alias="askExchange")] = None
222
+ r"""Exchange or venue currently showing the best ask. Use it for quote detail or market-structure displays."""
223
+
224
+ ask_price: Annotated[Optional[float], pydantic.Field(alias="askPrice")] = None
225
+ r"""Lowest current price sellers are asking. Use this as the reference price when the user is buying."""
226
+
227
+ ask_size: Annotated[Optional[int], pydantic.Field(alias="askSize")] = None
228
+ r"""Number of shares or contracts available at the current ask price."""
229
+
230
+ assets: Optional[float] = None
231
+ r"""Total assets reported for the company. Use it for balance-sheet and financial-strength views."""
232
+
233
+ avg_volume4_weeks: Annotated[
234
+ Optional[int], pydantic.Field(alias="avgVolume4Weeks")
235
+ ] = None
236
+ r"""Average trading volume over the last four weeks. Use it to judge liquidity versus today's volume."""
237
+
238
+ beta: Optional[float] = None
239
+ r"""Measure of the stock's volatility relative to the broader market. Values above 1 usually move more than the market; below 1 usually move less."""
240
+
241
+ bid_exchange: Annotated[Optional[str], pydantic.Field(alias="bidExchange")] = None
242
+ r"""Exchange or venue currently showing the best bid. Use it for quote detail or market-structure displays."""
243
+
244
+ bid_price: Annotated[Optional[float], pydantic.Field(alias="bidPrice")] = None
245
+ r"""Highest current price buyers are offering. Use this as the reference price when the user is selling."""
246
+
247
+ bid_size: Annotated[Optional[int], pydantic.Field(alias="bidSize")] = None
248
+ r"""Number of shares or contracts available at the current bid price."""
249
+
250
+ change_status: Annotated[Optional[str], pydantic.Field(alias="changeStatus")] = None
251
+ r"""Feed-provided status describing the latest price movement when available."""
252
+
253
+ close_price: Annotated[Optional[float], pydantic.Field(alias="closePrice")] = None
254
+ r"""Previous or latest close price from the feed. Use it as the baseline for daily change calculations."""
255
+
256
+ decliners: Optional[int] = None
257
+ r"""Number of symbols declining in the related market-breadth snapshot."""
258
+
259
+ dividend: Optional[float] = None
260
+ r"""Dividend amount when provided. Use it in income and yield displays."""
261
+
262
+ expiration_date: Annotated[
263
+ Optional[str], pydantic.Field(alias="expirationDate")
264
+ ] = None
265
+ r"""Option expiration date. Present for option instruments and empty for normal equities."""
266
+
267
+ has_options: Annotated[Optional[bool], pydantic.Field(alias="hasOptions")] = None
268
+ r"""Whether the underlying has listed options"""
269
+
270
+ high52_week_date: Annotated[
271
+ Optional[str], pydantic.Field(alias="high52WeekDate")
272
+ ] = None
273
+ r"""Date when the instrument reached its 52-week high. Use it with `high52WeekPrice`."""
274
+
275
+ high52_week_price: Annotated[
276
+ Optional[float], pydantic.Field(alias="high52WeekPrice")
277
+ ] = None
278
+ r"""Highest price over the last 52 weeks. Use it to show how close the current price is to its yearly high."""
279
+
280
+ high_price: Annotated[Optional[float], pydantic.Field(alias="highPrice")] = None
281
+ r"""Highest traded price during the current session. Use it for daily range displays."""
282
+
283
+ instrument_type: Annotated[
284
+ Optional[str], pydantic.Field(alias="instrumentType")
285
+ ] = None
286
+ r"""Instrument category returned by the market data provider, such as Equity or Option. Use it to choose the right UI treatment."""
287
+
288
+ is_etf: Annotated[Optional[bool], pydantic.Field(alias="isETF")] = None
289
+ r"""Whether the instrument is an ETF"""
290
+
291
+ last_price: Annotated[Optional[float], pydantic.Field(alias="lastPrice")] = None
292
+ r"""Most recent trade price reported by the feed. Use bid and ask instead when estimating immediate buy or sell execution cost."""
293
+
294
+ liabilities: Optional[float] = None
295
+ r"""Total liabilities reported for the company. Use it with assets to evaluate balance-sheet leverage."""
296
+
297
+ long_term_debt: Annotated[Optional[float], pydantic.Field(alias="longTermDebt")] = (
298
+ None
299
+ )
300
+ r"""Long-term debt reported for the company. Use it when evaluating leverage and financial risk."""
301
+
302
+ low52_week_date: Annotated[Optional[str], pydantic.Field(alias="low52WeekDate")] = (
303
+ None
304
+ )
305
+ r"""Date when the instrument reached its 52-week low. Use it with `low52WeekPrice`."""
306
+
307
+ low52_week_price: Annotated[
308
+ Optional[float], pydantic.Field(alias="low52WeekPrice")
309
+ ] = None
310
+ r"""Lowest price over the last 52 weeks. Use it to show how close the current price is to its yearly low."""
311
+
312
+ low_price: Annotated[Optional[float], pydantic.Field(alias="lowPrice")] = None
313
+ r"""Lowest traded price during the current session. Use it for daily range displays."""
314
+
315
+ market_cap: Annotated[Optional[int], pydantic.Field(alias="marketCap")] = None
316
+ r"""Company market value. Use it for company size, peer comparison, and screening."""
317
+
318
+ mid_price: Annotated[Optional[float], pydantic.Field(alias="midPrice")] = None
319
+ r"""Midpoint between bid and ask. Use it as a neutral reference price, not as a guaranteed execution price."""
320
+
321
+ name: Optional[str] = None
322
+ r"""Company or instrument name"""
323
+
324
+ nasdaq_buy_volume: Annotated[
325
+ Optional[int], pydantic.Field(alias="nasdaqBuyVolume")
326
+ ] = None
327
+ r"""Reported Nasdaq buy-side volume. Use it only for advanced market-flow displays."""
328
+
329
+ nasdaq_net_in_flow: Annotated[
330
+ Optional[float], pydantic.Field(alias="nasdaqNetInFlow")
331
+ ] = None
332
+ r"""Net buy versus sell flow for Nasdaq-listed activity when provided by the feed."""
333
+
334
+ nasdaq_sell_volume: Annotated[
335
+ Optional[int], pydantic.Field(alias="nasdaqSellVolume")
336
+ ] = None
337
+ r"""Reported Nasdaq sell-side volume. Use it only for advanced market-flow displays."""
338
+
339
+ net_change: Annotated[Optional[float], pydantic.Field(alias="netChange")] = None
340
+ r"""Price change versus the previous close. Use it for daily gain/loss displays."""
341
+
342
+ nyse_buy_volume: Annotated[Optional[int], pydantic.Field(alias="nyseBuyVolume")] = (
343
+ None
344
+ )
345
+ r"""Reported NYSE buy-side volume. Use it only for advanced market-flow displays."""
346
+
347
+ nyse_net_inflow: Annotated[
348
+ Optional[float], pydantic.Field(alias="nyseNetInflow")
349
+ ] = None
350
+ r"""Net buy versus sell flow for NYSE-listed activity when provided by the feed."""
351
+
352
+ nyse_sell_volume: Annotated[
353
+ Optional[int], pydantic.Field(alias="nyseSellVolume")
354
+ ] = None
355
+ r"""Reported NYSE sell-side volume. Use it only for advanced market-flow displays."""
356
+
357
+ open_interest: Annotated[Optional[int], pydantic.Field(alias="openInterest")] = None
358
+ r"""Number of outstanding option contracts for this contract. Use it to gauge options liquidity."""
359
+
360
+ open_price: Annotated[Optional[float], pydantic.Field(alias="openPrice")] = None
361
+ r"""Price at the start of the current trading session. Use it to compare where the stock opened versus where it trades now."""
362
+
363
+ pct_held_by_institution: Annotated[
364
+ Optional[float], pydantic.Field(alias="pctHeldByInstitution")
365
+ ] = None
366
+ r"""Percent held by institutions"""
367
+
368
+ price: Optional[float] = None
369
+ r"""Primary display price from the market data feed. Use it for summary cards when you do not need bid/ask detail."""
370
+
371
+ put_call: Annotated[
372
+ Optional[EquityDetailsDTOPutCall], pydantic.Field(alias="putCall")
373
+ ] = None
374
+ r"""Option contract type. Empty for non-option instruments. Accepts long or short form:
375
+ - `CALL` or `C` — call option (right to buy at strike).
376
+ - `PUT` or `P` — put option (right to sell at strike).
377
+ """
378
+
379
+ quote_timestamp: Annotated[
380
+ Optional[datetime], pydantic.Field(alias="quoteTimestamp")
381
+ ] = None
382
+ r"""RFC 3339 timestamp of the bid/ask quote. Use it to show quote freshness."""
383
+
384
+ shares_outstanding: Annotated[
385
+ Optional[int], pydantic.Field(alias="sharesOutstanding")
386
+ ] = None
387
+ r"""Total company shares outstanding. Use it in market capitalization and ownership calculations."""
388
+
389
+ short_interest: Annotated[Optional[int], pydantic.Field(alias="shortInterest")] = (
390
+ None
391
+ )
392
+ r"""Shares currently sold short when available. Use it to show bearish positioning or short-interest analysis."""
393
+
394
+ short_sale_restricted: Annotated[
395
+ Optional[int], pydantic.Field(alias="shortSaleRestricted")
396
+ ] = None
397
+ r"""Short sale restricted flag/value"""
398
+
399
+ sic_code: Annotated[Optional[int], pydantic.Field(alias="sicCode")] = None
400
+ r"""Standard Industrial Classification code for the company. Use it for industry classification or filtering."""
401
+
402
+ size: Optional[int] = None
403
+ r"""Number of shares or contracts in the last reported trade."""
404
+
405
+ spread: Optional[float] = None
406
+ r"""Difference between ask and bid. Use it to explain immediate trading cost on a market order."""
407
+
408
+ strike_price: Annotated[Optional[float], pydantic.Field(alias="strikePrice")] = None
409
+ r"""Option strike price. Present for option instruments and empty for normal equities."""
410
+
411
+ symbol: Optional[str] = None
412
+ r"""Ticker symbol this detail record belongs to. Use it to match the response item back to your requested symbol."""
413
+
414
+ tick: Optional[int] = None
415
+ r"""Feed tick direction or tick value when provided. Use it only when your UI needs trade direction indicators."""
416
+
417
+ total_symbols: Annotated[Optional[int], pydantic.Field(alias="totalSymbols")] = None
418
+ r"""Total symbols counted in the market-breadth snapshot."""
419
+
420
+ total_volume: Annotated[Optional[int], pydantic.Field(alias="totalVolume")] = None
421
+ r"""Total shares or contracts traded during the current session. Use it to show liquidity and activity."""
422
+
423
+ trade_exchange: Annotated[Optional[str], pydantic.Field(alias="tradeExchange")] = (
424
+ None
425
+ )
426
+ r"""Exchange or venue where the last trade was reported. Use it for advanced quote detail displays."""
427
+
428
+ trade_seq: Annotated[Optional[int], pydantic.Field(alias="tradeSeq")] = None
429
+ r"""Feed sequence number for the last trade. Use it only for advanced debugging or ordering feed updates."""
430
+
431
+ trade_timestamp: Annotated[
432
+ Optional[datetime], pydantic.Field(alias="tradeTimestamp")
433
+ ] = None
434
+ r"""RFC 3339 timestamp of the last trade, including its UTC offset. Omitted when the feed timestamp is missing or invalid."""
435
+
436
+ type: Optional[str] = None
437
+ r"""Provider-supplied market data type for this snapshot. Treat this as a feed classification string rather than an order type."""
438
+
439
+ unchanged: Optional[int] = None
440
+ r"""Number of symbols unchanged in the related market-breadth snapshot."""
441
+
442
+ underlying_symbol: Annotated[
443
+ Optional[str], pydantic.Field(alias="underlyingSymbol")
444
+ ] = None
445
+ r"""Underlying symbol (options)"""
446
+
447
+ year_end_close: Annotated[Optional[float], pydantic.Field(alias="yearEndClose")] = (
448
+ None
449
+ )
450
+ r"""Closing price at the prior year end when available. Use it for year-to-date comparisons."""
451
+
452
+ ytd_high: Annotated[Optional[float], pydantic.Field(alias="ytdHigh")] = None
453
+ r"""Highest price since the start of the current calendar year."""
454
+
455
+ ytd_high_date: Annotated[Optional[str], pydantic.Field(alias="ytdHighDate")] = None
456
+ r"""Date when the instrument reached its year-to-date high."""
457
+
458
+ ytd_low: Annotated[Optional[float], pydantic.Field(alias="ytdLow")] = None
459
+ r"""Lowest price since the start of the current calendar year."""
460
+
461
+ ytd_low_date: Annotated[Optional[str], pydantic.Field(alias="ytdLowDate")] = None
462
+ r"""Date when the instrument reached its year-to-date low."""
463
+
464
+ @field_serializer("put_call")
465
+ def serialize_put_call(self, value):
466
+ if isinstance(value, str):
467
+ try:
468
+ return models.EquityDetailsDTOPutCall(value)
469
+ except ValueError:
470
+ return value
471
+ return value
472
+
473
+ @model_serializer(mode="wrap")
474
+ def serialize_model(self, handler):
475
+ optional_fields = set(
476
+ [
477
+ "EPS3YearGrowthRate",
478
+ "EPS5YearGrowthRate",
479
+ "EPSCurrentQtrMeanEst",
480
+ "EPSCurrentYearMeanEst",
481
+ "EPSDiluted",
482
+ "EPSLatest12Month",
483
+ "PE",
484
+ "advancers",
485
+ "annualYield",
486
+ "askExchange",
487
+ "askPrice",
488
+ "askSize",
489
+ "assets",
490
+ "avgVolume4Weeks",
491
+ "beta",
492
+ "bidExchange",
493
+ "bidPrice",
494
+ "bidSize",
495
+ "changeStatus",
496
+ "closePrice",
497
+ "decliners",
498
+ "dividend",
499
+ "expirationDate",
500
+ "hasOptions",
501
+ "high52WeekDate",
502
+ "high52WeekPrice",
503
+ "highPrice",
504
+ "instrumentType",
505
+ "isETF",
506
+ "lastPrice",
507
+ "liabilities",
508
+ "longTermDebt",
509
+ "low52WeekDate",
510
+ "low52WeekPrice",
511
+ "lowPrice",
512
+ "marketCap",
513
+ "midPrice",
514
+ "name",
515
+ "nasdaqBuyVolume",
516
+ "nasdaqNetInFlow",
517
+ "nasdaqSellVolume",
518
+ "netChange",
519
+ "nyseBuyVolume",
520
+ "nyseNetInflow",
521
+ "nyseSellVolume",
522
+ "openInterest",
523
+ "openPrice",
524
+ "pctHeldByInstitution",
525
+ "price",
526
+ "putCall",
527
+ "quoteTimestamp",
528
+ "sharesOutstanding",
529
+ "shortInterest",
530
+ "shortSaleRestricted",
531
+ "sicCode",
532
+ "size",
533
+ "spread",
534
+ "strikePrice",
535
+ "symbol",
536
+ "tick",
537
+ "totalSymbols",
538
+ "totalVolume",
539
+ "tradeExchange",
540
+ "tradeSeq",
541
+ "tradeTimestamp",
542
+ "type",
543
+ "unchanged",
544
+ "underlyingSymbol",
545
+ "yearEndClose",
546
+ "ytdHigh",
547
+ "ytdHighDate",
548
+ "ytdLow",
549
+ "ytdLowDate",
550
+ ]
551
+ )
552
+ serialized = handler(self)
553
+ m = {}
554
+
555
+ for n, f in type(self).model_fields.items():
556
+ k = f.alias or n
557
+ val = serialized.get(k, serialized.get(n))
558
+
559
+ if val != UNSET_SENTINEL:
560
+ if val is not None or k not in optional_fields:
561
+ m[k] = val
562
+
563
+ return m
564
+
565
+
566
+ try:
567
+ EquityDetailsDTO.model_rebuild()
568
+ except NameError:
569
+ pass
@@ -0,0 +1,48 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: c7c83653d61e
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class ErrorCodeTypedDict(TypedDict):
12
+ r"""A single structured error entry identifying a machine-readable code, a human-readable description, and optionally the field that caused it."""
13
+
14
+ code: NotRequired[str]
15
+ r"""Machine-readable error code"""
16
+ description: NotRequired[str]
17
+ r"""Human-readable description of the error"""
18
+ field: NotRequired[str]
19
+ r"""Field name that caused the error"""
20
+
21
+
22
+ class ErrorCode(BaseModel):
23
+ r"""A single structured error entry identifying a machine-readable code, a human-readable description, and optionally the field that caused it."""
24
+
25
+ code: Optional[str] = None
26
+ r"""Machine-readable error code"""
27
+
28
+ description: Optional[str] = None
29
+ r"""Human-readable description of the error"""
30
+
31
+ field: Optional[str] = None
32
+ r"""Field name that caused the error"""
33
+
34
+ @model_serializer(mode="wrap")
35
+ def serialize_model(self, handler):
36
+ optional_fields = set(["code", "description", "field"])
37
+ serialized = handler(self)
38
+ m = {}
39
+
40
+ for n, f in type(self).model_fields.items():
41
+ k = f.alias or n
42
+ val = serialized.get(k, serialized.get(n))
43
+
44
+ if val != UNSET_SENTINEL:
45
+ if val is not None or k not in optional_fields:
46
+ m[k] = val
47
+
48
+ return m
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+ # @generated-id: 6bc1ae70ec22
3
+
4
+ from __future__ import annotations
5
+ from finance_dev.types import BaseModel, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import List, Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class EtbListResponseTypedDict(TypedDict):
12
+ r"""The complete set of easy-to-borrow symbols in effect for the current trading day. Membership in the list is the whole signal: a symbol on the list can be sold short normally, and a symbol absent from it is hard to borrow. There is no per-symbol status field, quantity, or borrow rate."""
13
+
14
+ count: NotRequired[int]
15
+ r"""Number of entries in `symbols`."""
16
+ symbols: NotRequired[List[str]]
17
+ r"""Every borrowable symbol currently in effect — uppercase, sorted ascending, and free of duplicates. The order is imposed by the service, so two calls on the same day return the same order. Always an array, never null. An empty array means the day's list has not loaded yet, NOT that nothing is borrowable."""
18
+
19
+
20
+ class EtbListResponse(BaseModel):
21
+ r"""The complete set of easy-to-borrow symbols in effect for the current trading day. Membership in the list is the whole signal: a symbol on the list can be sold short normally, and a symbol absent from it is hard to borrow. There is no per-symbol status field, quantity, or borrow rate."""
22
+
23
+ count: Optional[int] = None
24
+ r"""Number of entries in `symbols`."""
25
+
26
+ symbols: Optional[List[str]] = None
27
+ r"""Every borrowable symbol currently in effect — uppercase, sorted ascending, and free of duplicates. The order is imposed by the service, so two calls on the same day return the same order. Always an array, never null. An empty array means the day's list has not loaded yet, NOT that nothing is borrowable."""
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = set(["count", "symbols"])
32
+ serialized = handler(self)
33
+ m = {}
34
+
35
+ for n, f in type(self).model_fields.items():
36
+ k = f.alias or n
37
+ val = serialized.get(k, serialized.get(n))
38
+
39
+ if val != UNSET_SENTINEL:
40
+ if val is not None or k not in optional_fields:
41
+ m[k] = val
42
+
43
+ return m