invinite-data-api 0.1.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 (257) hide show
  1. invinite_data_api/__init__.py +534 -0
  2. invinite_data_api/api/__init__.py +25 -0
  3. invinite_data_api/api/account_api.py +316 -0
  4. invinite_data_api/api/as_reported_balance_sheet_api.py +1086 -0
  5. invinite_data_api/api/as_reported_cash_flow_statement_api.py +1086 -0
  6. invinite_data_api/api/as_reported_income_statement_api.py +1086 -0
  7. invinite_data_api/api/as_reported_snapshot_api.py +1035 -0
  8. invinite_data_api/api/company_api.py +1907 -0
  9. invinite_data_api/api/earnings_calls_api.py +11855 -0
  10. invinite_data_api/api/financial_metrics_api.py +1101 -0
  11. invinite_data_api/api/health_api.py +280 -0
  12. invinite_data_api/api/insider_trades_api.py +434 -0
  13. invinite_data_api/api/institutional_ownership_api.py +1480 -0
  14. invinite_data_api/api/ipos_api.py +397 -0
  15. invinite_data_api/api/market_api.py +344 -0
  16. invinite_data_api/api/metadata_api.py +540 -0
  17. invinite_data_api/api/sec_filings_api.py +1325 -0
  18. invinite_data_api/api/segmented_financials_api.py +759 -0
  19. invinite_data_api/api/standardized_balance_sheet_api.py +1086 -0
  20. invinite_data_api/api/standardized_cash_flow_statement_api.py +1086 -0
  21. invinite_data_api/api/standardized_income_statement_api.py +1086 -0
  22. invinite_data_api/api/standardized_snapshot_api.py +1035 -0
  23. invinite_data_api/api/status_api.py +535 -0
  24. invinite_data_api/api_client.py +804 -0
  25. invinite_data_api/api_response.py +21 -0
  26. invinite_data_api/configuration.py +605 -0
  27. invinite_data_api/exceptions.py +218 -0
  28. invinite_data_api/models/__init__.py +239 -0
  29. invinite_data_api/models/account_usage200_response.py +133 -0
  30. invinite_data_api/models/account_usage200_response_by_family_inner.py +94 -0
  31. invinite_data_api/models/account_usage200_response_by_key_inner.py +108 -0
  32. invinite_data_api/models/account_usage200_response_daily_inner.py +99 -0
  33. invinite_data_api/models/account_usage200_response_daily_inner_errors.py +96 -0
  34. invinite_data_api/models/account_usage200_response_period.py +109 -0
  35. invinite_data_api/models/as_reported_income_statement200_response.py +96 -0
  36. invinite_data_api/models/as_reported_income_statement200_response_companies_inner.py +102 -0
  37. invinite_data_api/models/as_reported_income_statement200_response_companies_inner_periods_inner.py +100 -0
  38. invinite_data_api/models/as_reported_income_statement_detailed200_response.py +96 -0
  39. invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner.py +102 -0
  40. invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner_periods_inner.py +113 -0
  41. invinite_data_api/models/as_reported_income_statement_detailed200_response_companies_inner_periods_inner_facts_value.py +120 -0
  42. invinite_data_api/models/as_reported_income_statement_presentation200_response.py +96 -0
  43. invinite_data_api/models/as_reported_income_statement_presentation200_response_companies_inner.py +102 -0
  44. invinite_data_api/models/as_reported_income_statement_presentation200_response_companies_inner_periods_inner.py +108 -0
  45. invinite_data_api/models/as_reported_snapshot_detailed200_response.py +97 -0
  46. invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner.py +117 -0
  47. invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner_statements.py +117 -0
  48. invinite_data_api/models/as_reported_snapshot_detailed200_response_companies_inner_statements_income_statement.py +101 -0
  49. invinite_data_api/models/as_reported_snapshot_presentation200_response.py +97 -0
  50. invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner.py +117 -0
  51. invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner_statements.py +117 -0
  52. invinite_data_api/models/as_reported_snapshot_presentation200_response_companies_inner_statements_income_statement.py +96 -0
  53. invinite_data_api/models/bad_request_error.py +90 -0
  54. invinite_data_api/models/company_available_companies200_response.py +98 -0
  55. invinite_data_api/models/company_available_companies200_response_companies_inner.py +92 -0
  56. invinite_data_api/models/company_available_companies401_response.py +90 -0
  57. invinite_data_api/models/company_details200_response.py +96 -0
  58. invinite_data_api/models/company_details200_response_companies_inner.py +279 -0
  59. invinite_data_api/models/company_dividends200_response.py +96 -0
  60. invinite_data_api/models/company_dividends200_response_companies_inner.py +102 -0
  61. invinite_data_api/models/company_dividends200_response_companies_inner_dividends_inner.py +101 -0
  62. invinite_data_api/models/company_fiscal_periods200_response.py +96 -0
  63. invinite_data_api/models/company_fiscal_periods200_response_companies_inner.py +102 -0
  64. invinite_data_api/models/company_fiscal_periods200_response_companies_inner_periods_inner.py +97 -0
  65. invinite_data_api/models/company_search200_response.py +100 -0
  66. invinite_data_api/models/company_search200_response_companies_inner.py +99 -0
  67. invinite_data_api/models/company_splits200_response.py +96 -0
  68. invinite_data_api/models/company_splits200_response_companies_inner.py +102 -0
  69. invinite_data_api/models/company_splits200_response_companies_inner_splits_inner.py +95 -0
  70. invinite_data_api/models/earnings_calls_analysts200_response.py +102 -0
  71. invinite_data_api/models/earnings_calls_analysts200_response_analysts_inner.py +116 -0
  72. invinite_data_api/models/earnings_calls_audio200_response.py +135 -0
  73. invinite_data_api/models/earnings_calls_audio202_response.py +97 -0
  74. invinite_data_api/models/earnings_calls_calendar200_response.py +103 -0
  75. invinite_data_api/models/earnings_calls_calendar200_response_events_inner.py +228 -0
  76. invinite_data_api/models/earnings_calls_company_document200_response.py +98 -0
  77. invinite_data_api/models/earnings_calls_company_documents200_response.py +104 -0
  78. invinite_data_api/models/earnings_calls_company_documents200_response_company.py +92 -0
  79. invinite_data_api/models/earnings_calls_company_documents200_response_documents_inner.py +293 -0
  80. invinite_data_api/models/earnings_calls_diff200_response.py +190 -0
  81. invinite_data_api/models/earnings_calls_diff200_response_hedging.py +100 -0
  82. invinite_data_api/models/earnings_calls_diff200_response_new_topics_inner.py +97 -0
  83. invinite_data_api/models/earnings_calls_diff200_response_prior_event.py +92 -0
  84. invinite_data_api/models/earnings_calls_diff200_response_slide_diff.py +98 -0
  85. invinite_data_api/models/earnings_calls_document_search200_response.py +98 -0
  86. invinite_data_api/models/earnings_calls_document_search200_response_hits_inner.py +177 -0
  87. invinite_data_api/models/earnings_calls_documents200_response.py +104 -0
  88. invinite_data_api/models/earnings_calls_documents200_response_documents_inner.py +206 -0
  89. invinite_data_api/models/earnings_calls_events200_response.py +104 -0
  90. invinite_data_api/models/earnings_calls_events200_response_events_inner.py +238 -0
  91. invinite_data_api/models/earnings_calls_events200_response_events_inner_observations_inner.py +119 -0
  92. invinite_data_api/models/earnings_calls_extractions200_response.py +123 -0
  93. invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner.py +187 -0
  94. invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner_sources_inner.py +110 -0
  95. invinite_data_api/models/earnings_calls_extractions200_response_guidance_inner_sources_inner_speaker.py +107 -0
  96. invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner.py +155 -0
  97. invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner_filing_link.py +166 -0
  98. invinite_data_api/models/earnings_calls_extractions200_response_kpis_inner_filing_link_fact_period.py +110 -0
  99. invinite_data_api/models/earnings_calls_guidance_history200_response.py +102 -0
  100. invinite_data_api/models/earnings_calls_guidance_history200_response_series_inner.py +183 -0
  101. invinite_data_api/models/earnings_calls_guidance_history200_response_series_inner_change_vs_prior.py +107 -0
  102. invinite_data_api/models/earnings_calls_live200_response.py +99 -0
  103. invinite_data_api/models/earnings_calls_live200_response_events_inner.py +236 -0
  104. invinite_data_api/models/earnings_calls_live_stream200_response.py +141 -0
  105. invinite_data_api/models/earnings_calls_live_stream200_response_event.py +96 -0
  106. invinite_data_api/models/earnings_calls_metrics200_response.py +158 -0
  107. invinite_data_api/models/earnings_calls_participants200_response.py +109 -0
  108. invinite_data_api/models/earnings_calls_participants200_response_participants_inner.py +148 -0
  109. invinite_data_api/models/earnings_calls_participants200_response_participants_inner_evidence_inner.py +90 -0
  110. invinite_data_api/models/earnings_calls_participants200_response_participation_events_inner.py +105 -0
  111. invinite_data_api/models/earnings_calls_person200_response.py +133 -0
  112. invinite_data_api/models/earnings_calls_person200_response_appearances_inner.py +134 -0
  113. invinite_data_api/models/earnings_calls_press_release200_response.py +146 -0
  114. invinite_data_api/models/earnings_calls_press_release200_response_participants_inner.py +102 -0
  115. invinite_data_api/models/earnings_calls_price_attribution200_response.py +190 -0
  116. invinite_data_api/models/earnings_calls_price_attribution200_response_buckets_inner.py +105 -0
  117. invinite_data_api/models/earnings_calls_price_attribution200_response_buckets_inner_utterance_refs_inner.py +92 -0
  118. invinite_data_api/models/earnings_calls_price_attribution200_response_top_minutes_inner.py +101 -0
  119. invinite_data_api/models/earnings_calls_prosody200_response.py +111 -0
  120. invinite_data_api/models/earnings_calls_prosody200_response_speakers_inner.py +177 -0
  121. invinite_data_api/models/earnings_calls_prosody200_response_speakers_inner_speaker.py +109 -0
  122. invinite_data_api/models/earnings_calls_qa200_response.py +101 -0
  123. invinite_data_api/models/earnings_calls_qa200_response_pairs_inner.py +149 -0
  124. invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_analyst.py +110 -0
  125. invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_answers_inner.py +110 -0
  126. invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_scores.py +119 -0
  127. invinite_data_api/models/earnings_calls_qa200_response_pairs_inner_scores_evidence.py +97 -0
  128. invinite_data_api/models/earnings_calls_search200_response.py +98 -0
  129. invinite_data_api/models/earnings_calls_search200_response_hits_inner.py +161 -0
  130. invinite_data_api/models/earnings_calls_search200_response_hits_inner_slide.py +95 -0
  131. invinite_data_api/models/earnings_calls_slides200_response.py +113 -0
  132. invinite_data_api/models/earnings_calls_slides200_response_deck.py +124 -0
  133. invinite_data_api/models/earnings_calls_slides200_response_slides_inner.py +104 -0
  134. invinite_data_api/models/earnings_calls_transcript200_response.py +140 -0
  135. invinite_data_api/models/earnings_calls_transcript404_response.py +98 -0
  136. invinite_data_api/models/earnings_calls_transcript_diff200_response.py +111 -0
  137. invinite_data_api/models/earnings_calls_transcript_diff200_response_changes_inner.py +104 -0
  138. invinite_data_api/models/earnings_calls_transcript_diff200_response_stats.py +90 -0
  139. invinite_data_api/models/earnings_calls_transcript_versions200_response.py +106 -0
  140. invinite_data_api/models/earnings_calls_transcript_versions200_response_versions_inner.py +116 -0
  141. invinite_data_api/models/earnings_calls_webhooks_create201_response.py +126 -0
  142. invinite_data_api/models/earnings_calls_webhooks_create_request.py +97 -0
  143. invinite_data_api/models/earnings_calls_webhooks_create_request_filters.py +91 -0
  144. invinite_data_api/models/earnings_calls_webhooks_deliveries200_response.py +97 -0
  145. invinite_data_api/models/earnings_calls_webhooks_deliveries200_response_data_inner.py +133 -0
  146. invinite_data_api/models/earnings_calls_webhooks_list200_response.py +96 -0
  147. invinite_data_api/models/earnings_calls_webhooks_list200_response_data_inner.py +124 -0
  148. invinite_data_api/models/earnings_calls_webhooks_list200_response_data_inner_filters.py +90 -0
  149. invinite_data_api/models/earnings_calls_webhooks_rotate_secret200_response.py +91 -0
  150. invinite_data_api/models/earnings_calls_webhooks_test202_response.py +98 -0
  151. invinite_data_api/models/earnings_calls_webhooks_update_request.py +95 -0
  152. invinite_data_api/models/financial_metrics_ratios200_response.py +97 -0
  153. invinite_data_api/models/financial_metrics_ratios200_response_companies_inner.py +103 -0
  154. invinite_data_api/models/financial_metrics_ratios200_response_companies_inner_periods_inner.py +109 -0
  155. invinite_data_api/models/forbidden_error.py +90 -0
  156. invinite_data_api/models/health_get200_response.py +90 -0
  157. invinite_data_api/models/insider_trades_list200_response.py +102 -0
  158. invinite_data_api/models/insider_trades_list200_response_transactions_inner.py +146 -0
  159. invinite_data_api/models/institutional_ownership_holdings_by_company200_response.py +102 -0
  160. invinite_data_api/models/institutional_ownership_holdings_by_investor200_response.py +100 -0
  161. invinite_data_api/models/institutional_ownership_holdings_by_investor200_response_holdings_inner.py +171 -0
  162. invinite_data_api/models/institutional_ownership_institutions200_response.py +98 -0
  163. invinite_data_api/models/institutional_ownership_institutions200_response_institutions_inner.py +132 -0
  164. invinite_data_api/models/institutional_ownership_transactions200_response.py +98 -0
  165. invinite_data_api/models/institutional_ownership_transactions200_response_transactions_inner.py +186 -0
  166. invinite_data_api/models/internal_server_error.py +90 -0
  167. invinite_data_api/models/ipos_list200_response.py +98 -0
  168. invinite_data_api/models/ipos_list200_response_ipos_inner.py +130 -0
  169. invinite_data_api/models/market_holidays200_response.py +98 -0
  170. invinite_data_api/models/market_holidays200_response_holidays_inner.py +105 -0
  171. invinite_data_api/models/metadata_available_metrics200_response.py +96 -0
  172. invinite_data_api/models/metadata_available_metrics200_response_metrics_inner.py +90 -0
  173. invinite_data_api/models/metadata_available_section_ids200_response.py +96 -0
  174. invinite_data_api/models/metadata_available_section_ids200_response_form_types_inner.py +105 -0
  175. invinite_data_api/models/metadata_available_section_ids200_response_form_types_inner_sections_inner.py +94 -0
  176. invinite_data_api/models/not_found_error.py +90 -0
  177. invinite_data_api/models/presentation_fact.py +112 -0
  178. invinite_data_api/models/sec_filings_available_form_types200_response.py +88 -0
  179. invinite_data_api/models/sec_filings_list200_response.py +96 -0
  180. invinite_data_api/models/sec_filings_list200_response_companies_inner.py +102 -0
  181. invinite_data_api/models/sec_filings_list200_response_companies_inner_filings_inner.py +127 -0
  182. invinite_data_api/models/sec_filings_search200_response.py +98 -0
  183. invinite_data_api/models/sec_filings_search200_response_sources_inner.py +99 -0
  184. invinite_data_api/models/sec_filings_sections200_response.py +96 -0
  185. invinite_data_api/models/sec_filings_sections200_response_companies_inner.py +100 -0
  186. invinite_data_api/models/sec_filings_sections200_response_companies_inner_sections_inner.py +132 -0
  187. invinite_data_api/models/segmented_financials200_response.py +96 -0
  188. invinite_data_api/models/segmented_financials200_response_companies_inner.py +102 -0
  189. invinite_data_api/models/segmented_financials200_response_companies_inner_periods_inner.py +123 -0
  190. invinite_data_api/models/segmented_financials200_response_companies_inner_periods_inner_facts_value_inner.py +104 -0
  191. invinite_data_api/models/segmented_financials_detailed200_response.py +96 -0
  192. invinite_data_api/models/segmented_financials_detailed200_response_companies_inner.py +102 -0
  193. invinite_data_api/models/segmented_financials_detailed200_response_companies_inner_periods_inner.py +123 -0
  194. invinite_data_api/models/segmented_financials_detailed200_response_companies_inner_periods_inner_facts_value_inner.py +141 -0
  195. invinite_data_api/models/service_unavailable_error.py +90 -0
  196. invinite_data_api/models/standardized_income_statement200_response.py +97 -0
  197. invinite_data_api/models/standardized_income_statement200_response_companies_inner.py +103 -0
  198. invinite_data_api/models/standardized_income_statement200_response_companies_inner_periods_inner.py +109 -0
  199. invinite_data_api/models/standardized_income_statement_detailed200_response.py +97 -0
  200. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner.py +103 -0
  201. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner.py +122 -0
  202. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value.py +120 -0
  203. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula.py +98 -0
  204. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner.py +137 -0
  205. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner_one_of.py +134 -0
  206. invinite_data_api/models/standardized_income_statement_detailed200_response_companies_inner_periods_inner_facts_value_formula_members_inner_one_of1.py +120 -0
  207. invinite_data_api/models/standardized_income_statement_presentation200_response.py +97 -0
  208. invinite_data_api/models/standardized_income_statement_presentation200_response_companies_inner.py +103 -0
  209. invinite_data_api/models/standardized_income_statement_presentation200_response_companies_inner_periods_inner.py +117 -0
  210. invinite_data_api/models/standardized_presentation_fact.py +101 -0
  211. invinite_data_api/models/standardized_snapshot200_response.py +97 -0
  212. invinite_data_api/models/standardized_snapshot200_response_companies_inner.py +117 -0
  213. invinite_data_api/models/standardized_snapshot200_response_companies_inner_statements.py +117 -0
  214. invinite_data_api/models/standardized_snapshot200_response_companies_inner_statements_income_statement.py +88 -0
  215. invinite_data_api/models/standardized_snapshot_detailed200_response.py +97 -0
  216. invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner.py +117 -0
  217. invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner_statements.py +117 -0
  218. invinite_data_api/models/standardized_snapshot_detailed200_response_companies_inner_statements_income_statement.py +101 -0
  219. invinite_data_api/models/standardized_snapshot_presentation200_response.py +97 -0
  220. invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner.py +117 -0
  221. invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner_statements.py +117 -0
  222. invinite_data_api/models/standardized_snapshot_presentation200_response_companies_inner_statements_income_statement.py +96 -0
  223. invinite_data_api/models/status_get200_response.py +110 -0
  224. invinite_data_api/models/status_get200_response_services_inner.py +125 -0
  225. invinite_data_api/models/status_get200_response_universe.py +99 -0
  226. invinite_data_api/models/status_get200_response_universe_earnings_calls.py +90 -0
  227. invinite_data_api/models/status_licensing200_response.py +130 -0
  228. invinite_data_api/models/status_licensing200_response_families_inner.py +105 -0
  229. invinite_data_api/models/status_licensing200_response_families_inner_routes_inner.py +106 -0
  230. invinite_data_api/models/status_licensing200_response_notes.py +98 -0
  231. invinite_data_api/models/status_licensing200_response_tiers.py +107 -0
  232. invinite_data_api/models/status_licensing200_response_tiers_free.py +98 -0
  233. invinite_data_api/models/unauthorized_error.py +90 -0
  234. invinite_data_api/models/web_socket_call_lifecycle_event.py +116 -0
  235. invinite_data_api/models/web_socket_error_event.py +109 -0
  236. invinite_data_api/models/web_socket_filing.py +127 -0
  237. invinite_data_api/models/web_socket_gap_event.py +104 -0
  238. invinite_data_api/models/web_socket_guidance_flash_event.py +156 -0
  239. invinite_data_api/models/web_socket_keyword_hit_event.py +177 -0
  240. invinite_data_api/models/web_socket_new_filing_event.py +101 -0
  241. invinite_data_api/models/web_socket_ping_event.py +95 -0
  242. invinite_data_api/models/web_socket_price_tick_event.py +170 -0
  243. invinite_data_api/models/web_socket_speaker_names_event.py +112 -0
  244. invinite_data_api/models/web_socket_speaker_names_event_assignments_inner.py +120 -0
  245. invinite_data_api/models/web_socket_subscribe_earnings_call.py +183 -0
  246. invinite_data_api/models/web_socket_subscribed_event.py +142 -0
  247. invinite_data_api/models/web_socket_transcript_segment_event.py +118 -0
  248. invinite_data_api/models/web_socket_unsubscribe.py +98 -0
  249. invinite_data_api/models/web_socket_unsubscribed_event.py +107 -0
  250. invinite_data_api/models/web_socket_warning_event.py +109 -0
  251. invinite_data_api/models/webhook_envelope.py +103 -0
  252. invinite_data_api/py.typed +0 -0
  253. invinite_data_api/rest.py +263 -0
  254. invinite_data_api-0.1.0.dist-info/METADATA +133 -0
  255. invinite_data_api-0.1.0.dist-info/RECORD +257 -0
  256. invinite_data_api-0.1.0.dist-info/WHEEL +5 -0
  257. invinite_data_api-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1907 @@
1
+ """
2
+ Invinite API
3
+
4
+ Invinite financial data API. Each endpoint has a base credit cost: `x-credits` is the base cost; responses add 1 credit per started 1,000 rows beyond the first 1,000; `X-Credits-Charged` reports the final debit and `X-Credits-Included-Remaining` what is left of the plan's included credits. `GET /v1/account/usage` returns your account's usage by day, endpoint family and key (it costs no credits). SEC filing search has a 100-credit base cost. ## Webhooks Accounts on LITE and above subscribe with `POST /v1/earnings-calls/webhooks` to the `earnings_call.*` lifecycle events (filtered by CIK); see `x-webhooks` for each `data` object. What a subscription may hold depends on the plan (a create / update beyond it is refused with the plan's limit; `ping` needs no subscription — the test route and the disabled notice send it to any subscription): | Plan | Webhooks | Events | CIKs per webhook | Keywords per webhook | |---|---|---|---|---| | FREE | 0 | — | — | — | | LITE | 5 | `.scheduled`, `.rescheduled`, `.started`, `.ended`, `.transcript_ready`, `.assets_ready` | ≤ 10 | — | | STANDARD | 15 | LITE + `.transcript_provisional`, `.transcript_corrected`, `.documents_updated` | ≤ 25 | — | | PRO / ENTERPRISE | 50 | STANDARD + `.guidance_flash`, `.keyword_hit` | ≤ 100 | ≤ 20 (on ≤ 10 webhooks) | Every delivery is a `POST` with `Content-Type: application/json`, `X-Invinite-Event`, `X-Invinite-Delivery` and `X-Invinite-Signature: t=<unix seconds>,v1=<hex>` where `v1` = HMAC-SHA256(secret, `<t>.<raw body>`); during a secret rotation the header carries one `v1` per valid secret. Reject a signature older than 5 minutes. Any 2xx within 10 s acknowledges; redirects are not followed. A failed delivery is retried after 1 min, 5 min, 30 min, 2 h, 6 h, 12 h, 24 h (8 attempts in all, the same delivery id each time). A subscription is disabled after 8 consecutive dead-lettered deliveries (a final `ping` with `notice: subscription_disabled` is sent). Deliveries are at-least-once and unordered: dedupe on the delivery id, order by `created_at`. ## Licensing | Tier | display | redistribute | rag | train | audio | resell | | --- | --- | --- | --- | --- | --- | --- | | FREE | ✓ | – | – | – | – | – | | LITE | ✓ | – | – | – | – | – | | STANDARD | ✓ | – | ✓ | – | – | – | | PRO | ✓ | ✓ | ✓ | – | ✓ | – | Invinite data may be shown and, from PRO, redistributed inside the licensee's own product with attribution (\"Source: Invinite\" on screen or in the API response that carries it). It may never be resold, relicensed, white-labelled or offered as a data feed as the licensee's own data, at any tier, under any contract. Policy version: 2026-10-draft. Draft — pending counsel sign-off. Audio files are forensically watermarked per customer. Audio is served through signed URLs, is subject to per-company takedown and may not be re-hosted; every delivered file carries a per-account forensic watermark: a copy found elsewhere is traced to the account that received it. SEC data: Figures and filings originate from SEC EDGAR; the standardisation, mapping and derived metrics are Invinite's. Every `/v1/*` data operation carries `x-license`, the minimum use right its data ships with; `GET /status/licensing` serves the same matrix per route, rendered at [data.invinite.com/docs/licensing](https://data.invinite.com/docs/licensing). `/v1/account/usage` serves no licensed data and carries none. ## Status [`/status`](/status) reports whether each product family works (a status and its uptime over 7, 30 and 90 days); [`/status/licensing`](/status/licensing) serves the licensing matrix per route. The status routes need no API key and are cached for 5 minutes. The public status page is [status.data.invinite.com](https://status.data.invinite.com): a snapshot of `/status` every 15 minutes plus an external reachability probe of the API. Uptime is the share of requests answered without a server error, measured by the API per product family; a window with too little traffic to judge shows no figure. Status reflects the last 24 hours. Product families: Company, Financials, SEC Filings, Insider Trades, Institutional Ownership, IPOs, Market, Metadata, Earnings Calls, WebSocket, Account.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
8
+
9
+ Do not edit the class manually.
10
+ """ # noqa: E501
11
+
12
+
13
+ import warnings
14
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
15
+ from typing import Any, Dict, List, Optional, Tuple, Union
16
+ from typing_extensions import Annotated
17
+
18
+ from datetime import date
19
+ from pydantic import Field, StrictStr, field_validator
20
+ from typing import Optional
21
+ from typing_extensions import Annotated
22
+ from invinite_data_api.models.company_available_companies200_response import CompanyAvailableCompanies200Response
23
+ from invinite_data_api.models.company_details200_response import CompanyDetails200Response
24
+ from invinite_data_api.models.company_dividends200_response import CompanyDividends200Response
25
+ from invinite_data_api.models.company_fiscal_periods200_response import CompanyFiscalPeriods200Response
26
+ from invinite_data_api.models.company_search200_response import CompanySearch200Response
27
+ from invinite_data_api.models.company_splits200_response import CompanySplits200Response
28
+
29
+ from invinite_data_api.api_client import ApiClient, RequestSerialized
30
+ from invinite_data_api.api_response import ApiResponse
31
+ from invinite_data_api.rest import RESTResponseType
32
+
33
+
34
+ class CompanyApi:
35
+ """NOTE: This class is auto generated by OpenAPI Generator
36
+ Ref: https://openapi-generator.tech
37
+
38
+ Do not edit the class manually.
39
+ """
40
+
41
+ def __init__(self, api_client=None) -> None:
42
+ if api_client is None:
43
+ api_client = ApiClient.get_default()
44
+ self.api_client = api_client
45
+
46
+
47
+ @validate_call
48
+ def company_available_companies(
49
+ self,
50
+ _request_timeout: Union[
51
+ None,
52
+ Annotated[StrictFloat, Field(gt=0)],
53
+ Tuple[
54
+ Annotated[StrictFloat, Field(gt=0)],
55
+ Annotated[StrictFloat, Field(gt=0)]
56
+ ]
57
+ ] = None,
58
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
59
+ _content_type: Optional[StrictStr] = None,
60
+ _headers: Optional[Dict[StrictStr, Any]] = None,
61
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
62
+ ) -> CompanyAvailableCompanies200Response:
63
+ """List available companies
64
+
65
+ List all available companies. Minimum tier for display: FREE.
66
+
67
+ :param _request_timeout: timeout setting for this request. If one
68
+ number provided, it will be total request
69
+ timeout. It can also be a pair (tuple) of
70
+ (connection, read) timeouts.
71
+ :type _request_timeout: int, tuple(int, int), optional
72
+ :param _request_auth: set to override the auth_settings for an a single
73
+ request; this effectively ignores the
74
+ authentication in the spec for a single request.
75
+ :type _request_auth: dict, optional
76
+ :param _content_type: force content-type for the request.
77
+ :type _content_type: str, Optional
78
+ :param _headers: set to override the headers for a single
79
+ request; this effectively ignores the headers
80
+ in the spec for a single request.
81
+ :type _headers: dict, optional
82
+ :param _host_index: set to override the host_index for a single
83
+ request; this effectively ignores the host_index
84
+ in the spec for a single request.
85
+ :type _host_index: int, optional
86
+ :return: Returns the result object.
87
+ """ # noqa: E501
88
+
89
+ _param = self._company_available_companies_serialize(
90
+ _request_auth=_request_auth,
91
+ _content_type=_content_type,
92
+ _headers=_headers,
93
+ _host_index=_host_index
94
+ )
95
+
96
+ _response_types_map: Dict[str, Optional[str]] = {
97
+ '200': "CompanyAvailableCompanies200Response",
98
+ '401': "CompanyAvailableCompanies401Response",
99
+ '500': "CompanyAvailableCompanies401Response",
100
+ }
101
+ response_data = self.api_client.call_api(
102
+ *_param,
103
+ _request_timeout=_request_timeout
104
+ )
105
+ response_data.read()
106
+ return self.api_client.response_deserialize(
107
+ response_data=response_data,
108
+ response_types_map=_response_types_map,
109
+ ).data
110
+
111
+
112
+ @validate_call
113
+ def company_available_companies_with_http_info(
114
+ self,
115
+ _request_timeout: Union[
116
+ None,
117
+ Annotated[StrictFloat, Field(gt=0)],
118
+ Tuple[
119
+ Annotated[StrictFloat, Field(gt=0)],
120
+ Annotated[StrictFloat, Field(gt=0)]
121
+ ]
122
+ ] = None,
123
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
124
+ _content_type: Optional[StrictStr] = None,
125
+ _headers: Optional[Dict[StrictStr, Any]] = None,
126
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
127
+ ) -> ApiResponse[CompanyAvailableCompanies200Response]:
128
+ """List available companies
129
+
130
+ List all available companies. Minimum tier for display: FREE.
131
+
132
+ :param _request_timeout: timeout setting for this request. If one
133
+ number provided, it will be total request
134
+ timeout. It can also be a pair (tuple) of
135
+ (connection, read) timeouts.
136
+ :type _request_timeout: int, tuple(int, int), optional
137
+ :param _request_auth: set to override the auth_settings for an a single
138
+ request; this effectively ignores the
139
+ authentication in the spec for a single request.
140
+ :type _request_auth: dict, optional
141
+ :param _content_type: force content-type for the request.
142
+ :type _content_type: str, Optional
143
+ :param _headers: set to override the headers for a single
144
+ request; this effectively ignores the headers
145
+ in the spec for a single request.
146
+ :type _headers: dict, optional
147
+ :param _host_index: set to override the host_index for a single
148
+ request; this effectively ignores the host_index
149
+ in the spec for a single request.
150
+ :type _host_index: int, optional
151
+ :return: Returns the result object.
152
+ """ # noqa: E501
153
+
154
+ _param = self._company_available_companies_serialize(
155
+ _request_auth=_request_auth,
156
+ _content_type=_content_type,
157
+ _headers=_headers,
158
+ _host_index=_host_index
159
+ )
160
+
161
+ _response_types_map: Dict[str, Optional[str]] = {
162
+ '200': "CompanyAvailableCompanies200Response",
163
+ '401': "CompanyAvailableCompanies401Response",
164
+ '500': "CompanyAvailableCompanies401Response",
165
+ }
166
+ response_data = self.api_client.call_api(
167
+ *_param,
168
+ _request_timeout=_request_timeout
169
+ )
170
+ response_data.read()
171
+ return self.api_client.response_deserialize(
172
+ response_data=response_data,
173
+ response_types_map=_response_types_map,
174
+ )
175
+
176
+
177
+ @validate_call
178
+ def company_available_companies_without_preload_content(
179
+ self,
180
+ _request_timeout: Union[
181
+ None,
182
+ Annotated[StrictFloat, Field(gt=0)],
183
+ Tuple[
184
+ Annotated[StrictFloat, Field(gt=0)],
185
+ Annotated[StrictFloat, Field(gt=0)]
186
+ ]
187
+ ] = None,
188
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
189
+ _content_type: Optional[StrictStr] = None,
190
+ _headers: Optional[Dict[StrictStr, Any]] = None,
191
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
192
+ ) -> RESTResponseType:
193
+ """List available companies
194
+
195
+ List all available companies. Minimum tier for display: FREE.
196
+
197
+ :param _request_timeout: timeout setting for this request. If one
198
+ number provided, it will be total request
199
+ timeout. It can also be a pair (tuple) of
200
+ (connection, read) timeouts.
201
+ :type _request_timeout: int, tuple(int, int), optional
202
+ :param _request_auth: set to override the auth_settings for an a single
203
+ request; this effectively ignores the
204
+ authentication in the spec for a single request.
205
+ :type _request_auth: dict, optional
206
+ :param _content_type: force content-type for the request.
207
+ :type _content_type: str, Optional
208
+ :param _headers: set to override the headers for a single
209
+ request; this effectively ignores the headers
210
+ in the spec for a single request.
211
+ :type _headers: dict, optional
212
+ :param _host_index: set to override the host_index for a single
213
+ request; this effectively ignores the host_index
214
+ in the spec for a single request.
215
+ :type _host_index: int, optional
216
+ :return: Returns the result object.
217
+ """ # noqa: E501
218
+
219
+ _param = self._company_available_companies_serialize(
220
+ _request_auth=_request_auth,
221
+ _content_type=_content_type,
222
+ _headers=_headers,
223
+ _host_index=_host_index
224
+ )
225
+
226
+ _response_types_map: Dict[str, Optional[str]] = {
227
+ '200': "CompanyAvailableCompanies200Response",
228
+ '401': "CompanyAvailableCompanies401Response",
229
+ '500': "CompanyAvailableCompanies401Response",
230
+ }
231
+ response_data = self.api_client.call_api(
232
+ *_param,
233
+ _request_timeout=_request_timeout
234
+ )
235
+ return response_data.response
236
+
237
+
238
+ def _company_available_companies_serialize(
239
+ self,
240
+ _request_auth,
241
+ _content_type,
242
+ _headers,
243
+ _host_index,
244
+ ) -> RequestSerialized:
245
+
246
+ _host = None
247
+
248
+ _collection_formats: Dict[str, str] = {
249
+ }
250
+
251
+ _path_params: Dict[str, str] = {}
252
+ _query_params: List[Tuple[str, str]] = []
253
+ _header_params: Dict[str, Optional[str]] = _headers or {}
254
+ _form_params: List[Tuple[str, str]] = []
255
+ _files: Dict[
256
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
257
+ ] = {}
258
+ _body_params: Optional[bytes] = None
259
+
260
+ # process the path parameters
261
+ # process the query parameters
262
+ # process the header parameters
263
+ # process the form parameters
264
+ # process the body parameter
265
+
266
+
267
+ # set the HTTP header `Accept`
268
+ if 'Accept' not in _header_params:
269
+ _header_params['Accept'] = self.api_client.select_header_accept(
270
+ [
271
+ 'application/json'
272
+ ]
273
+ )
274
+
275
+
276
+ # authentication setting
277
+ _auth_settings: List[str] = [
278
+ 'bearerAuth'
279
+ ]
280
+
281
+ return self.api_client.param_serialize(
282
+ method='GET',
283
+ resource_path='/v1/company/available-companies',
284
+ path_params=_path_params,
285
+ query_params=_query_params,
286
+ header_params=_header_params,
287
+ body=_body_params,
288
+ post_params=_form_params,
289
+ files=_files,
290
+ auth_settings=_auth_settings,
291
+ collection_formats=_collection_formats,
292
+ _host=_host,
293
+ _request_auth=_request_auth
294
+ )
295
+
296
+
297
+
298
+
299
+ @validate_call
300
+ def company_details(
301
+ self,
302
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
303
+ _request_timeout: Union[
304
+ None,
305
+ Annotated[StrictFloat, Field(gt=0)],
306
+ Tuple[
307
+ Annotated[StrictFloat, Field(gt=0)],
308
+ Annotated[StrictFloat, Field(gt=0)]
309
+ ]
310
+ ] = None,
311
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
312
+ _content_type: Optional[StrictStr] = None,
313
+ _headers: Optional[Dict[StrictStr, Any]] = None,
314
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
315
+ ) -> CompanyDetails200Response:
316
+ """Company details
317
+
318
+ Fetch details for a company. Minimum tier for display: FREE.
319
+
320
+ :param identifier: Ticker symbol or CIK (required)
321
+ :type identifier: str
322
+ :param _request_timeout: timeout setting for this request. If one
323
+ number provided, it will be total request
324
+ timeout. It can also be a pair (tuple) of
325
+ (connection, read) timeouts.
326
+ :type _request_timeout: int, tuple(int, int), optional
327
+ :param _request_auth: set to override the auth_settings for an a single
328
+ request; this effectively ignores the
329
+ authentication in the spec for a single request.
330
+ :type _request_auth: dict, optional
331
+ :param _content_type: force content-type for the request.
332
+ :type _content_type: str, Optional
333
+ :param _headers: set to override the headers for a single
334
+ request; this effectively ignores the headers
335
+ in the spec for a single request.
336
+ :type _headers: dict, optional
337
+ :param _host_index: set to override the host_index for a single
338
+ request; this effectively ignores the host_index
339
+ in the spec for a single request.
340
+ :type _host_index: int, optional
341
+ :return: Returns the result object.
342
+ """ # noqa: E501
343
+
344
+ _param = self._company_details_serialize(
345
+ identifier=identifier,
346
+ _request_auth=_request_auth,
347
+ _content_type=_content_type,
348
+ _headers=_headers,
349
+ _host_index=_host_index
350
+ )
351
+
352
+ _response_types_map: Dict[str, Optional[str]] = {
353
+ '200': "CompanyDetails200Response",
354
+ '400': "CompanyAvailableCompanies401Response",
355
+ '401': "CompanyAvailableCompanies401Response",
356
+ '404': "CompanyAvailableCompanies401Response",
357
+ '500': "CompanyAvailableCompanies401Response",
358
+ }
359
+ response_data = self.api_client.call_api(
360
+ *_param,
361
+ _request_timeout=_request_timeout
362
+ )
363
+ response_data.read()
364
+ return self.api_client.response_deserialize(
365
+ response_data=response_data,
366
+ response_types_map=_response_types_map,
367
+ ).data
368
+
369
+
370
+ @validate_call
371
+ def company_details_with_http_info(
372
+ self,
373
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
374
+ _request_timeout: Union[
375
+ None,
376
+ Annotated[StrictFloat, Field(gt=0)],
377
+ Tuple[
378
+ Annotated[StrictFloat, Field(gt=0)],
379
+ Annotated[StrictFloat, Field(gt=0)]
380
+ ]
381
+ ] = None,
382
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
383
+ _content_type: Optional[StrictStr] = None,
384
+ _headers: Optional[Dict[StrictStr, Any]] = None,
385
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
386
+ ) -> ApiResponse[CompanyDetails200Response]:
387
+ """Company details
388
+
389
+ Fetch details for a company. Minimum tier for display: FREE.
390
+
391
+ :param identifier: Ticker symbol or CIK (required)
392
+ :type identifier: str
393
+ :param _request_timeout: timeout setting for this request. If one
394
+ number provided, it will be total request
395
+ timeout. It can also be a pair (tuple) of
396
+ (connection, read) timeouts.
397
+ :type _request_timeout: int, tuple(int, int), optional
398
+ :param _request_auth: set to override the auth_settings for an a single
399
+ request; this effectively ignores the
400
+ authentication in the spec for a single request.
401
+ :type _request_auth: dict, optional
402
+ :param _content_type: force content-type for the request.
403
+ :type _content_type: str, Optional
404
+ :param _headers: set to override the headers for a single
405
+ request; this effectively ignores the headers
406
+ in the spec for a single request.
407
+ :type _headers: dict, optional
408
+ :param _host_index: set to override the host_index for a single
409
+ request; this effectively ignores the host_index
410
+ in the spec for a single request.
411
+ :type _host_index: int, optional
412
+ :return: Returns the result object.
413
+ """ # noqa: E501
414
+
415
+ _param = self._company_details_serialize(
416
+ identifier=identifier,
417
+ _request_auth=_request_auth,
418
+ _content_type=_content_type,
419
+ _headers=_headers,
420
+ _host_index=_host_index
421
+ )
422
+
423
+ _response_types_map: Dict[str, Optional[str]] = {
424
+ '200': "CompanyDetails200Response",
425
+ '400': "CompanyAvailableCompanies401Response",
426
+ '401': "CompanyAvailableCompanies401Response",
427
+ '404': "CompanyAvailableCompanies401Response",
428
+ '500': "CompanyAvailableCompanies401Response",
429
+ }
430
+ response_data = self.api_client.call_api(
431
+ *_param,
432
+ _request_timeout=_request_timeout
433
+ )
434
+ response_data.read()
435
+ return self.api_client.response_deserialize(
436
+ response_data=response_data,
437
+ response_types_map=_response_types_map,
438
+ )
439
+
440
+
441
+ @validate_call
442
+ def company_details_without_preload_content(
443
+ self,
444
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
445
+ _request_timeout: Union[
446
+ None,
447
+ Annotated[StrictFloat, Field(gt=0)],
448
+ Tuple[
449
+ Annotated[StrictFloat, Field(gt=0)],
450
+ Annotated[StrictFloat, Field(gt=0)]
451
+ ]
452
+ ] = None,
453
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
454
+ _content_type: Optional[StrictStr] = None,
455
+ _headers: Optional[Dict[StrictStr, Any]] = None,
456
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
457
+ ) -> RESTResponseType:
458
+ """Company details
459
+
460
+ Fetch details for a company. Minimum tier for display: FREE.
461
+
462
+ :param identifier: Ticker symbol or CIK (required)
463
+ :type identifier: str
464
+ :param _request_timeout: timeout setting for this request. If one
465
+ number provided, it will be total request
466
+ timeout. It can also be a pair (tuple) of
467
+ (connection, read) timeouts.
468
+ :type _request_timeout: int, tuple(int, int), optional
469
+ :param _request_auth: set to override the auth_settings for an a single
470
+ request; this effectively ignores the
471
+ authentication in the spec for a single request.
472
+ :type _request_auth: dict, optional
473
+ :param _content_type: force content-type for the request.
474
+ :type _content_type: str, Optional
475
+ :param _headers: set to override the headers for a single
476
+ request; this effectively ignores the headers
477
+ in the spec for a single request.
478
+ :type _headers: dict, optional
479
+ :param _host_index: set to override the host_index for a single
480
+ request; this effectively ignores the host_index
481
+ in the spec for a single request.
482
+ :type _host_index: int, optional
483
+ :return: Returns the result object.
484
+ """ # noqa: E501
485
+
486
+ _param = self._company_details_serialize(
487
+ identifier=identifier,
488
+ _request_auth=_request_auth,
489
+ _content_type=_content_type,
490
+ _headers=_headers,
491
+ _host_index=_host_index
492
+ )
493
+
494
+ _response_types_map: Dict[str, Optional[str]] = {
495
+ '200': "CompanyDetails200Response",
496
+ '400': "CompanyAvailableCompanies401Response",
497
+ '401': "CompanyAvailableCompanies401Response",
498
+ '404': "CompanyAvailableCompanies401Response",
499
+ '500': "CompanyAvailableCompanies401Response",
500
+ }
501
+ response_data = self.api_client.call_api(
502
+ *_param,
503
+ _request_timeout=_request_timeout
504
+ )
505
+ return response_data.response
506
+
507
+
508
+ def _company_details_serialize(
509
+ self,
510
+ identifier,
511
+ _request_auth,
512
+ _content_type,
513
+ _headers,
514
+ _host_index,
515
+ ) -> RequestSerialized:
516
+
517
+ _host = None
518
+
519
+ _collection_formats: Dict[str, str] = {
520
+ }
521
+
522
+ _path_params: Dict[str, str] = {}
523
+ _query_params: List[Tuple[str, str]] = []
524
+ _header_params: Dict[str, Optional[str]] = _headers or {}
525
+ _form_params: List[Tuple[str, str]] = []
526
+ _files: Dict[
527
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
528
+ ] = {}
529
+ _body_params: Optional[bytes] = None
530
+
531
+ # process the path parameters
532
+ # process the query parameters
533
+ if identifier is not None:
534
+
535
+ _query_params.append(('identifier', identifier))
536
+
537
+ # process the header parameters
538
+ # process the form parameters
539
+ # process the body parameter
540
+
541
+
542
+ # set the HTTP header `Accept`
543
+ if 'Accept' not in _header_params:
544
+ _header_params['Accept'] = self.api_client.select_header_accept(
545
+ [
546
+ 'application/json'
547
+ ]
548
+ )
549
+
550
+
551
+ # authentication setting
552
+ _auth_settings: List[str] = [
553
+ 'bearerAuth'
554
+ ]
555
+
556
+ return self.api_client.param_serialize(
557
+ method='GET',
558
+ resource_path='/v1/company/details',
559
+ path_params=_path_params,
560
+ query_params=_query_params,
561
+ header_params=_header_params,
562
+ body=_body_params,
563
+ post_params=_form_params,
564
+ files=_files,
565
+ auth_settings=_auth_settings,
566
+ collection_formats=_collection_formats,
567
+ _host=_host,
568
+ _request_auth=_request_auth
569
+ )
570
+
571
+
572
+
573
+
574
+ @validate_call
575
+ def company_dividends(
576
+ self,
577
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
578
+ start_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)")] = None,
579
+ end_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)")] = None,
580
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for dividends by ex_dividend_date")] = None,
581
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of dividends to return")] = None,
582
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of dividends to skip for pagination")] = None,
583
+ _request_timeout: Union[
584
+ None,
585
+ Annotated[StrictFloat, Field(gt=0)],
586
+ Tuple[
587
+ Annotated[StrictFloat, Field(gt=0)],
588
+ Annotated[StrictFloat, Field(gt=0)]
589
+ ]
590
+ ] = None,
591
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
592
+ _content_type: Optional[StrictStr] = None,
593
+ _headers: Optional[Dict[StrictStr, Any]] = None,
594
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
595
+ ) -> CompanyDividends200Response:
596
+ """Company dividends
597
+
598
+ Fetch stock dividends for a company. Minimum tier for redistribute: PRO.
599
+
600
+ :param identifier: Ticker symbol or CIK (required)
601
+ :type identifier: str
602
+ :param start_date: Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)
603
+ :type start_date: date
604
+ :param end_date: Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)
605
+ :type end_date: date
606
+ :param sort: Sort direction for dividends by ex_dividend_date
607
+ :type sort: str
608
+ :param limit: Maximum number of dividends to return
609
+ :type limit: int
610
+ :param offset: Number of dividends to skip for pagination
611
+ :type offset: int
612
+ :param _request_timeout: timeout setting for this request. If one
613
+ number provided, it will be total request
614
+ timeout. It can also be a pair (tuple) of
615
+ (connection, read) timeouts.
616
+ :type _request_timeout: int, tuple(int, int), optional
617
+ :param _request_auth: set to override the auth_settings for an a single
618
+ request; this effectively ignores the
619
+ authentication in the spec for a single request.
620
+ :type _request_auth: dict, optional
621
+ :param _content_type: force content-type for the request.
622
+ :type _content_type: str, Optional
623
+ :param _headers: set to override the headers for a single
624
+ request; this effectively ignores the headers
625
+ in the spec for a single request.
626
+ :type _headers: dict, optional
627
+ :param _host_index: set to override the host_index for a single
628
+ request; this effectively ignores the host_index
629
+ in the spec for a single request.
630
+ :type _host_index: int, optional
631
+ :return: Returns the result object.
632
+ """ # noqa: E501
633
+
634
+ _param = self._company_dividends_serialize(
635
+ identifier=identifier,
636
+ start_date=start_date,
637
+ end_date=end_date,
638
+ sort=sort,
639
+ limit=limit,
640
+ offset=offset,
641
+ _request_auth=_request_auth,
642
+ _content_type=_content_type,
643
+ _headers=_headers,
644
+ _host_index=_host_index
645
+ )
646
+
647
+ _response_types_map: Dict[str, Optional[str]] = {
648
+ '200': "CompanyDividends200Response",
649
+ '400': "CompanyAvailableCompanies401Response",
650
+ '401': "CompanyAvailableCompanies401Response",
651
+ '404': "CompanyAvailableCompanies401Response",
652
+ '500': "CompanyAvailableCompanies401Response",
653
+ }
654
+ response_data = self.api_client.call_api(
655
+ *_param,
656
+ _request_timeout=_request_timeout
657
+ )
658
+ response_data.read()
659
+ return self.api_client.response_deserialize(
660
+ response_data=response_data,
661
+ response_types_map=_response_types_map,
662
+ ).data
663
+
664
+
665
+ @validate_call
666
+ def company_dividends_with_http_info(
667
+ self,
668
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
669
+ start_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)")] = None,
670
+ end_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)")] = None,
671
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for dividends by ex_dividend_date")] = None,
672
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of dividends to return")] = None,
673
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of dividends to skip for pagination")] = None,
674
+ _request_timeout: Union[
675
+ None,
676
+ Annotated[StrictFloat, Field(gt=0)],
677
+ Tuple[
678
+ Annotated[StrictFloat, Field(gt=0)],
679
+ Annotated[StrictFloat, Field(gt=0)]
680
+ ]
681
+ ] = None,
682
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
683
+ _content_type: Optional[StrictStr] = None,
684
+ _headers: Optional[Dict[StrictStr, Any]] = None,
685
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
686
+ ) -> ApiResponse[CompanyDividends200Response]:
687
+ """Company dividends
688
+
689
+ Fetch stock dividends for a company. Minimum tier for redistribute: PRO.
690
+
691
+ :param identifier: Ticker symbol or CIK (required)
692
+ :type identifier: str
693
+ :param start_date: Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)
694
+ :type start_date: date
695
+ :param end_date: Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)
696
+ :type end_date: date
697
+ :param sort: Sort direction for dividends by ex_dividend_date
698
+ :type sort: str
699
+ :param limit: Maximum number of dividends to return
700
+ :type limit: int
701
+ :param offset: Number of dividends to skip for pagination
702
+ :type offset: int
703
+ :param _request_timeout: timeout setting for this request. If one
704
+ number provided, it will be total request
705
+ timeout. It can also be a pair (tuple) of
706
+ (connection, read) timeouts.
707
+ :type _request_timeout: int, tuple(int, int), optional
708
+ :param _request_auth: set to override the auth_settings for an a single
709
+ request; this effectively ignores the
710
+ authentication in the spec for a single request.
711
+ :type _request_auth: dict, optional
712
+ :param _content_type: force content-type for the request.
713
+ :type _content_type: str, Optional
714
+ :param _headers: set to override the headers for a single
715
+ request; this effectively ignores the headers
716
+ in the spec for a single request.
717
+ :type _headers: dict, optional
718
+ :param _host_index: set to override the host_index for a single
719
+ request; this effectively ignores the host_index
720
+ in the spec for a single request.
721
+ :type _host_index: int, optional
722
+ :return: Returns the result object.
723
+ """ # noqa: E501
724
+
725
+ _param = self._company_dividends_serialize(
726
+ identifier=identifier,
727
+ start_date=start_date,
728
+ end_date=end_date,
729
+ sort=sort,
730
+ limit=limit,
731
+ offset=offset,
732
+ _request_auth=_request_auth,
733
+ _content_type=_content_type,
734
+ _headers=_headers,
735
+ _host_index=_host_index
736
+ )
737
+
738
+ _response_types_map: Dict[str, Optional[str]] = {
739
+ '200': "CompanyDividends200Response",
740
+ '400': "CompanyAvailableCompanies401Response",
741
+ '401': "CompanyAvailableCompanies401Response",
742
+ '404': "CompanyAvailableCompanies401Response",
743
+ '500': "CompanyAvailableCompanies401Response",
744
+ }
745
+ response_data = self.api_client.call_api(
746
+ *_param,
747
+ _request_timeout=_request_timeout
748
+ )
749
+ response_data.read()
750
+ return self.api_client.response_deserialize(
751
+ response_data=response_data,
752
+ response_types_map=_response_types_map,
753
+ )
754
+
755
+
756
+ @validate_call
757
+ def company_dividends_without_preload_content(
758
+ self,
759
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
760
+ start_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)")] = None,
761
+ end_date: Annotated[Optional[date], Field(description="Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)")] = None,
762
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for dividends by ex_dividend_date")] = None,
763
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of dividends to return")] = None,
764
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of dividends to skip for pagination")] = None,
765
+ _request_timeout: Union[
766
+ None,
767
+ Annotated[StrictFloat, Field(gt=0)],
768
+ Tuple[
769
+ Annotated[StrictFloat, Field(gt=0)],
770
+ Annotated[StrictFloat, Field(gt=0)]
771
+ ]
772
+ ] = None,
773
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
774
+ _content_type: Optional[StrictStr] = None,
775
+ _headers: Optional[Dict[StrictStr, Any]] = None,
776
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
777
+ ) -> RESTResponseType:
778
+ """Company dividends
779
+
780
+ Fetch stock dividends for a company. Minimum tier for redistribute: PRO.
781
+
782
+ :param identifier: Ticker symbol or CIK (required)
783
+ :type identifier: str
784
+ :param start_date: Filter dividends with ex_dividend_date on or after this date (YYYY-MM-DD)
785
+ :type start_date: date
786
+ :param end_date: Filter dividends with ex_dividend_date on or before this date (YYYY-MM-DD)
787
+ :type end_date: date
788
+ :param sort: Sort direction for dividends by ex_dividend_date
789
+ :type sort: str
790
+ :param limit: Maximum number of dividends to return
791
+ :type limit: int
792
+ :param offset: Number of dividends to skip for pagination
793
+ :type offset: int
794
+ :param _request_timeout: timeout setting for this request. If one
795
+ number provided, it will be total request
796
+ timeout. It can also be a pair (tuple) of
797
+ (connection, read) timeouts.
798
+ :type _request_timeout: int, tuple(int, int), optional
799
+ :param _request_auth: set to override the auth_settings for an a single
800
+ request; this effectively ignores the
801
+ authentication in the spec for a single request.
802
+ :type _request_auth: dict, optional
803
+ :param _content_type: force content-type for the request.
804
+ :type _content_type: str, Optional
805
+ :param _headers: set to override the headers for a single
806
+ request; this effectively ignores the headers
807
+ in the spec for a single request.
808
+ :type _headers: dict, optional
809
+ :param _host_index: set to override the host_index for a single
810
+ request; this effectively ignores the host_index
811
+ in the spec for a single request.
812
+ :type _host_index: int, optional
813
+ :return: Returns the result object.
814
+ """ # noqa: E501
815
+
816
+ _param = self._company_dividends_serialize(
817
+ identifier=identifier,
818
+ start_date=start_date,
819
+ end_date=end_date,
820
+ sort=sort,
821
+ limit=limit,
822
+ offset=offset,
823
+ _request_auth=_request_auth,
824
+ _content_type=_content_type,
825
+ _headers=_headers,
826
+ _host_index=_host_index
827
+ )
828
+
829
+ _response_types_map: Dict[str, Optional[str]] = {
830
+ '200': "CompanyDividends200Response",
831
+ '400': "CompanyAvailableCompanies401Response",
832
+ '401': "CompanyAvailableCompanies401Response",
833
+ '404': "CompanyAvailableCompanies401Response",
834
+ '500': "CompanyAvailableCompanies401Response",
835
+ }
836
+ response_data = self.api_client.call_api(
837
+ *_param,
838
+ _request_timeout=_request_timeout
839
+ )
840
+ return response_data.response
841
+
842
+
843
+ def _company_dividends_serialize(
844
+ self,
845
+ identifier,
846
+ start_date,
847
+ end_date,
848
+ sort,
849
+ limit,
850
+ offset,
851
+ _request_auth,
852
+ _content_type,
853
+ _headers,
854
+ _host_index,
855
+ ) -> RequestSerialized:
856
+
857
+ _host = None
858
+
859
+ _collection_formats: Dict[str, str] = {
860
+ }
861
+
862
+ _path_params: Dict[str, str] = {}
863
+ _query_params: List[Tuple[str, str]] = []
864
+ _header_params: Dict[str, Optional[str]] = _headers or {}
865
+ _form_params: List[Tuple[str, str]] = []
866
+ _files: Dict[
867
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
868
+ ] = {}
869
+ _body_params: Optional[bytes] = None
870
+
871
+ # process the path parameters
872
+ # process the query parameters
873
+ if identifier is not None:
874
+
875
+ _query_params.append(('identifier', identifier))
876
+
877
+ if start_date is not None:
878
+ if isinstance(start_date, date):
879
+ _query_params.append(
880
+ (
881
+ 'start_date',
882
+ start_date.strftime(
883
+ self.api_client.configuration.date_format
884
+ )
885
+ )
886
+ )
887
+ else:
888
+ _query_params.append(('start_date', start_date))
889
+
890
+ if end_date is not None:
891
+ if isinstance(end_date, date):
892
+ _query_params.append(
893
+ (
894
+ 'end_date',
895
+ end_date.strftime(
896
+ self.api_client.configuration.date_format
897
+ )
898
+ )
899
+ )
900
+ else:
901
+ _query_params.append(('end_date', end_date))
902
+
903
+ if sort is not None:
904
+
905
+ _query_params.append(('sort', sort))
906
+
907
+ if limit is not None:
908
+
909
+ _query_params.append(('limit', limit))
910
+
911
+ if offset is not None:
912
+
913
+ _query_params.append(('offset', offset))
914
+
915
+ # process the header parameters
916
+ # process the form parameters
917
+ # process the body parameter
918
+
919
+
920
+ # set the HTTP header `Accept`
921
+ if 'Accept' not in _header_params:
922
+ _header_params['Accept'] = self.api_client.select_header_accept(
923
+ [
924
+ 'application/json'
925
+ ]
926
+ )
927
+
928
+
929
+ # authentication setting
930
+ _auth_settings: List[str] = [
931
+ 'bearerAuth'
932
+ ]
933
+
934
+ return self.api_client.param_serialize(
935
+ method='GET',
936
+ resource_path='/v1/company/dividends',
937
+ path_params=_path_params,
938
+ query_params=_query_params,
939
+ header_params=_header_params,
940
+ body=_body_params,
941
+ post_params=_form_params,
942
+ files=_files,
943
+ auth_settings=_auth_settings,
944
+ collection_formats=_collection_formats,
945
+ _host=_host,
946
+ _request_auth=_request_auth
947
+ )
948
+
949
+
950
+
951
+
952
+ @validate_call
953
+ def company_fiscal_periods(
954
+ self,
955
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
956
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for periods by period_end")] = None,
957
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of periods per company")] = None,
958
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of periods to skip for pagination")] = None,
959
+ _request_timeout: Union[
960
+ None,
961
+ Annotated[StrictFloat, Field(gt=0)],
962
+ Tuple[
963
+ Annotated[StrictFloat, Field(gt=0)],
964
+ Annotated[StrictFloat, Field(gt=0)]
965
+ ]
966
+ ] = None,
967
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
968
+ _content_type: Optional[StrictStr] = None,
969
+ _headers: Optional[Dict[StrictStr, Any]] = None,
970
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
971
+ ) -> CompanyFiscalPeriods200Response:
972
+ """Company fiscal periods
973
+
974
+ Fetch available fiscal periods for a company. Minimum tier for display: FREE.
975
+
976
+ :param identifier: Ticker symbol or CIK (required)
977
+ :type identifier: str
978
+ :param sort: Sort direction for periods by period_end
979
+ :type sort: str
980
+ :param limit: Maximum number of periods per company
981
+ :type limit: int
982
+ :param offset: Number of periods to skip for pagination
983
+ :type offset: int
984
+ :param _request_timeout: timeout setting for this request. If one
985
+ number provided, it will be total request
986
+ timeout. It can also be a pair (tuple) of
987
+ (connection, read) timeouts.
988
+ :type _request_timeout: int, tuple(int, int), optional
989
+ :param _request_auth: set to override the auth_settings for an a single
990
+ request; this effectively ignores the
991
+ authentication in the spec for a single request.
992
+ :type _request_auth: dict, optional
993
+ :param _content_type: force content-type for the request.
994
+ :type _content_type: str, Optional
995
+ :param _headers: set to override the headers for a single
996
+ request; this effectively ignores the headers
997
+ in the spec for a single request.
998
+ :type _headers: dict, optional
999
+ :param _host_index: set to override the host_index for a single
1000
+ request; this effectively ignores the host_index
1001
+ in the spec for a single request.
1002
+ :type _host_index: int, optional
1003
+ :return: Returns the result object.
1004
+ """ # noqa: E501
1005
+
1006
+ _param = self._company_fiscal_periods_serialize(
1007
+ identifier=identifier,
1008
+ sort=sort,
1009
+ limit=limit,
1010
+ offset=offset,
1011
+ _request_auth=_request_auth,
1012
+ _content_type=_content_type,
1013
+ _headers=_headers,
1014
+ _host_index=_host_index
1015
+ )
1016
+
1017
+ _response_types_map: Dict[str, Optional[str]] = {
1018
+ '200': "CompanyFiscalPeriods200Response",
1019
+ '400': "CompanyAvailableCompanies401Response",
1020
+ '401': "CompanyAvailableCompanies401Response",
1021
+ '404': "CompanyAvailableCompanies401Response",
1022
+ '500': "CompanyAvailableCompanies401Response",
1023
+ }
1024
+ response_data = self.api_client.call_api(
1025
+ *_param,
1026
+ _request_timeout=_request_timeout
1027
+ )
1028
+ response_data.read()
1029
+ return self.api_client.response_deserialize(
1030
+ response_data=response_data,
1031
+ response_types_map=_response_types_map,
1032
+ ).data
1033
+
1034
+
1035
+ @validate_call
1036
+ def company_fiscal_periods_with_http_info(
1037
+ self,
1038
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
1039
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for periods by period_end")] = None,
1040
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of periods per company")] = None,
1041
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of periods to skip for pagination")] = None,
1042
+ _request_timeout: Union[
1043
+ None,
1044
+ Annotated[StrictFloat, Field(gt=0)],
1045
+ Tuple[
1046
+ Annotated[StrictFloat, Field(gt=0)],
1047
+ Annotated[StrictFloat, Field(gt=0)]
1048
+ ]
1049
+ ] = None,
1050
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1051
+ _content_type: Optional[StrictStr] = None,
1052
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1053
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1054
+ ) -> ApiResponse[CompanyFiscalPeriods200Response]:
1055
+ """Company fiscal periods
1056
+
1057
+ Fetch available fiscal periods for a company. Minimum tier for display: FREE.
1058
+
1059
+ :param identifier: Ticker symbol or CIK (required)
1060
+ :type identifier: str
1061
+ :param sort: Sort direction for periods by period_end
1062
+ :type sort: str
1063
+ :param limit: Maximum number of periods per company
1064
+ :type limit: int
1065
+ :param offset: Number of periods to skip for pagination
1066
+ :type offset: int
1067
+ :param _request_timeout: timeout setting for this request. If one
1068
+ number provided, it will be total request
1069
+ timeout. It can also be a pair (tuple) of
1070
+ (connection, read) timeouts.
1071
+ :type _request_timeout: int, tuple(int, int), optional
1072
+ :param _request_auth: set to override the auth_settings for an a single
1073
+ request; this effectively ignores the
1074
+ authentication in the spec for a single request.
1075
+ :type _request_auth: dict, optional
1076
+ :param _content_type: force content-type for the request.
1077
+ :type _content_type: str, Optional
1078
+ :param _headers: set to override the headers for a single
1079
+ request; this effectively ignores the headers
1080
+ in the spec for a single request.
1081
+ :type _headers: dict, optional
1082
+ :param _host_index: set to override the host_index for a single
1083
+ request; this effectively ignores the host_index
1084
+ in the spec for a single request.
1085
+ :type _host_index: int, optional
1086
+ :return: Returns the result object.
1087
+ """ # noqa: E501
1088
+
1089
+ _param = self._company_fiscal_periods_serialize(
1090
+ identifier=identifier,
1091
+ sort=sort,
1092
+ limit=limit,
1093
+ offset=offset,
1094
+ _request_auth=_request_auth,
1095
+ _content_type=_content_type,
1096
+ _headers=_headers,
1097
+ _host_index=_host_index
1098
+ )
1099
+
1100
+ _response_types_map: Dict[str, Optional[str]] = {
1101
+ '200': "CompanyFiscalPeriods200Response",
1102
+ '400': "CompanyAvailableCompanies401Response",
1103
+ '401': "CompanyAvailableCompanies401Response",
1104
+ '404': "CompanyAvailableCompanies401Response",
1105
+ '500': "CompanyAvailableCompanies401Response",
1106
+ }
1107
+ response_data = self.api_client.call_api(
1108
+ *_param,
1109
+ _request_timeout=_request_timeout
1110
+ )
1111
+ response_data.read()
1112
+ return self.api_client.response_deserialize(
1113
+ response_data=response_data,
1114
+ response_types_map=_response_types_map,
1115
+ )
1116
+
1117
+
1118
+ @validate_call
1119
+ def company_fiscal_periods_without_preload_content(
1120
+ self,
1121
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
1122
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for periods by period_end")] = None,
1123
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of periods per company")] = None,
1124
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of periods to skip for pagination")] = None,
1125
+ _request_timeout: Union[
1126
+ None,
1127
+ Annotated[StrictFloat, Field(gt=0)],
1128
+ Tuple[
1129
+ Annotated[StrictFloat, Field(gt=0)],
1130
+ Annotated[StrictFloat, Field(gt=0)]
1131
+ ]
1132
+ ] = None,
1133
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1134
+ _content_type: Optional[StrictStr] = None,
1135
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1136
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1137
+ ) -> RESTResponseType:
1138
+ """Company fiscal periods
1139
+
1140
+ Fetch available fiscal periods for a company. Minimum tier for display: FREE.
1141
+
1142
+ :param identifier: Ticker symbol or CIK (required)
1143
+ :type identifier: str
1144
+ :param sort: Sort direction for periods by period_end
1145
+ :type sort: str
1146
+ :param limit: Maximum number of periods per company
1147
+ :type limit: int
1148
+ :param offset: Number of periods to skip for pagination
1149
+ :type offset: int
1150
+ :param _request_timeout: timeout setting for this request. If one
1151
+ number provided, it will be total request
1152
+ timeout. It can also be a pair (tuple) of
1153
+ (connection, read) timeouts.
1154
+ :type _request_timeout: int, tuple(int, int), optional
1155
+ :param _request_auth: set to override the auth_settings for an a single
1156
+ request; this effectively ignores the
1157
+ authentication in the spec for a single request.
1158
+ :type _request_auth: dict, optional
1159
+ :param _content_type: force content-type for the request.
1160
+ :type _content_type: str, Optional
1161
+ :param _headers: set to override the headers for a single
1162
+ request; this effectively ignores the headers
1163
+ in the spec for a single request.
1164
+ :type _headers: dict, optional
1165
+ :param _host_index: set to override the host_index for a single
1166
+ request; this effectively ignores the host_index
1167
+ in the spec for a single request.
1168
+ :type _host_index: int, optional
1169
+ :return: Returns the result object.
1170
+ """ # noqa: E501
1171
+
1172
+ _param = self._company_fiscal_periods_serialize(
1173
+ identifier=identifier,
1174
+ sort=sort,
1175
+ limit=limit,
1176
+ offset=offset,
1177
+ _request_auth=_request_auth,
1178
+ _content_type=_content_type,
1179
+ _headers=_headers,
1180
+ _host_index=_host_index
1181
+ )
1182
+
1183
+ _response_types_map: Dict[str, Optional[str]] = {
1184
+ '200': "CompanyFiscalPeriods200Response",
1185
+ '400': "CompanyAvailableCompanies401Response",
1186
+ '401': "CompanyAvailableCompanies401Response",
1187
+ '404': "CompanyAvailableCompanies401Response",
1188
+ '500': "CompanyAvailableCompanies401Response",
1189
+ }
1190
+ response_data = self.api_client.call_api(
1191
+ *_param,
1192
+ _request_timeout=_request_timeout
1193
+ )
1194
+ return response_data.response
1195
+
1196
+
1197
+ def _company_fiscal_periods_serialize(
1198
+ self,
1199
+ identifier,
1200
+ sort,
1201
+ limit,
1202
+ offset,
1203
+ _request_auth,
1204
+ _content_type,
1205
+ _headers,
1206
+ _host_index,
1207
+ ) -> RequestSerialized:
1208
+
1209
+ _host = None
1210
+
1211
+ _collection_formats: Dict[str, str] = {
1212
+ }
1213
+
1214
+ _path_params: Dict[str, str] = {}
1215
+ _query_params: List[Tuple[str, str]] = []
1216
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1217
+ _form_params: List[Tuple[str, str]] = []
1218
+ _files: Dict[
1219
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1220
+ ] = {}
1221
+ _body_params: Optional[bytes] = None
1222
+
1223
+ # process the path parameters
1224
+ # process the query parameters
1225
+ if identifier is not None:
1226
+
1227
+ _query_params.append(('identifier', identifier))
1228
+
1229
+ if sort is not None:
1230
+
1231
+ _query_params.append(('sort', sort))
1232
+
1233
+ if limit is not None:
1234
+
1235
+ _query_params.append(('limit', limit))
1236
+
1237
+ if offset is not None:
1238
+
1239
+ _query_params.append(('offset', offset))
1240
+
1241
+ # process the header parameters
1242
+ # process the form parameters
1243
+ # process the body parameter
1244
+
1245
+
1246
+ # set the HTTP header `Accept`
1247
+ if 'Accept' not in _header_params:
1248
+ _header_params['Accept'] = self.api_client.select_header_accept(
1249
+ [
1250
+ 'application/json'
1251
+ ]
1252
+ )
1253
+
1254
+
1255
+ # authentication setting
1256
+ _auth_settings: List[str] = [
1257
+ 'bearerAuth'
1258
+ ]
1259
+
1260
+ return self.api_client.param_serialize(
1261
+ method='GET',
1262
+ resource_path='/v1/company/fiscal-periods',
1263
+ path_params=_path_params,
1264
+ query_params=_query_params,
1265
+ header_params=_header_params,
1266
+ body=_body_params,
1267
+ post_params=_form_params,
1268
+ files=_files,
1269
+ auth_settings=_auth_settings,
1270
+ collection_formats=_collection_formats,
1271
+ _host=_host,
1272
+ _request_auth=_request_auth
1273
+ )
1274
+
1275
+
1276
+
1277
+
1278
+ @validate_call
1279
+ def company_search(
1280
+ self,
1281
+ query: Annotated[str, Field(min_length=1, strict=True, max_length=100, description="Search text to match against ticker (prefix) or name (contains)")],
1282
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of companies to return")] = None,
1283
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Pagination offset")] = None,
1284
+ _request_timeout: Union[
1285
+ None,
1286
+ Annotated[StrictFloat, Field(gt=0)],
1287
+ Tuple[
1288
+ Annotated[StrictFloat, Field(gt=0)],
1289
+ Annotated[StrictFloat, Field(gt=0)]
1290
+ ]
1291
+ ] = None,
1292
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1293
+ _content_type: Optional[StrictStr] = None,
1294
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1295
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1296
+ ) -> CompanySearch200Response:
1297
+ """Search companies
1298
+
1299
+ Search companies by ticker or name. Minimum tier for display: FREE.
1300
+
1301
+ :param query: Search text to match against ticker (prefix) or name (contains) (required)
1302
+ :type query: str
1303
+ :param limit: Maximum number of companies to return
1304
+ :type limit: int
1305
+ :param offset: Pagination offset
1306
+ :type offset: int
1307
+ :param _request_timeout: timeout setting for this request. If one
1308
+ number provided, it will be total request
1309
+ timeout. It can also be a pair (tuple) of
1310
+ (connection, read) timeouts.
1311
+ :type _request_timeout: int, tuple(int, int), optional
1312
+ :param _request_auth: set to override the auth_settings for an a single
1313
+ request; this effectively ignores the
1314
+ authentication in the spec for a single request.
1315
+ :type _request_auth: dict, optional
1316
+ :param _content_type: force content-type for the request.
1317
+ :type _content_type: str, Optional
1318
+ :param _headers: set to override the headers for a single
1319
+ request; this effectively ignores the headers
1320
+ in the spec for a single request.
1321
+ :type _headers: dict, optional
1322
+ :param _host_index: set to override the host_index for a single
1323
+ request; this effectively ignores the host_index
1324
+ in the spec for a single request.
1325
+ :type _host_index: int, optional
1326
+ :return: Returns the result object.
1327
+ """ # noqa: E501
1328
+
1329
+ _param = self._company_search_serialize(
1330
+ query=query,
1331
+ limit=limit,
1332
+ offset=offset,
1333
+ _request_auth=_request_auth,
1334
+ _content_type=_content_type,
1335
+ _headers=_headers,
1336
+ _host_index=_host_index
1337
+ )
1338
+
1339
+ _response_types_map: Dict[str, Optional[str]] = {
1340
+ '200': "CompanySearch200Response",
1341
+ '400': "CompanyAvailableCompanies401Response",
1342
+ '401': "CompanyAvailableCompanies401Response",
1343
+ '500': "CompanyAvailableCompanies401Response",
1344
+ }
1345
+ response_data = self.api_client.call_api(
1346
+ *_param,
1347
+ _request_timeout=_request_timeout
1348
+ )
1349
+ response_data.read()
1350
+ return self.api_client.response_deserialize(
1351
+ response_data=response_data,
1352
+ response_types_map=_response_types_map,
1353
+ ).data
1354
+
1355
+
1356
+ @validate_call
1357
+ def company_search_with_http_info(
1358
+ self,
1359
+ query: Annotated[str, Field(min_length=1, strict=True, max_length=100, description="Search text to match against ticker (prefix) or name (contains)")],
1360
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of companies to return")] = None,
1361
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Pagination offset")] = None,
1362
+ _request_timeout: Union[
1363
+ None,
1364
+ Annotated[StrictFloat, Field(gt=0)],
1365
+ Tuple[
1366
+ Annotated[StrictFloat, Field(gt=0)],
1367
+ Annotated[StrictFloat, Field(gt=0)]
1368
+ ]
1369
+ ] = None,
1370
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1371
+ _content_type: Optional[StrictStr] = None,
1372
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1373
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1374
+ ) -> ApiResponse[CompanySearch200Response]:
1375
+ """Search companies
1376
+
1377
+ Search companies by ticker or name. Minimum tier for display: FREE.
1378
+
1379
+ :param query: Search text to match against ticker (prefix) or name (contains) (required)
1380
+ :type query: str
1381
+ :param limit: Maximum number of companies to return
1382
+ :type limit: int
1383
+ :param offset: Pagination offset
1384
+ :type offset: int
1385
+ :param _request_timeout: timeout setting for this request. If one
1386
+ number provided, it will be total request
1387
+ timeout. It can also be a pair (tuple) of
1388
+ (connection, read) timeouts.
1389
+ :type _request_timeout: int, tuple(int, int), optional
1390
+ :param _request_auth: set to override the auth_settings for an a single
1391
+ request; this effectively ignores the
1392
+ authentication in the spec for a single request.
1393
+ :type _request_auth: dict, optional
1394
+ :param _content_type: force content-type for the request.
1395
+ :type _content_type: str, Optional
1396
+ :param _headers: set to override the headers for a single
1397
+ request; this effectively ignores the headers
1398
+ in the spec for a single request.
1399
+ :type _headers: dict, optional
1400
+ :param _host_index: set to override the host_index for a single
1401
+ request; this effectively ignores the host_index
1402
+ in the spec for a single request.
1403
+ :type _host_index: int, optional
1404
+ :return: Returns the result object.
1405
+ """ # noqa: E501
1406
+
1407
+ _param = self._company_search_serialize(
1408
+ query=query,
1409
+ limit=limit,
1410
+ offset=offset,
1411
+ _request_auth=_request_auth,
1412
+ _content_type=_content_type,
1413
+ _headers=_headers,
1414
+ _host_index=_host_index
1415
+ )
1416
+
1417
+ _response_types_map: Dict[str, Optional[str]] = {
1418
+ '200': "CompanySearch200Response",
1419
+ '400': "CompanyAvailableCompanies401Response",
1420
+ '401': "CompanyAvailableCompanies401Response",
1421
+ '500': "CompanyAvailableCompanies401Response",
1422
+ }
1423
+ response_data = self.api_client.call_api(
1424
+ *_param,
1425
+ _request_timeout=_request_timeout
1426
+ )
1427
+ response_data.read()
1428
+ return self.api_client.response_deserialize(
1429
+ response_data=response_data,
1430
+ response_types_map=_response_types_map,
1431
+ )
1432
+
1433
+
1434
+ @validate_call
1435
+ def company_search_without_preload_content(
1436
+ self,
1437
+ query: Annotated[str, Field(min_length=1, strict=True, max_length=100, description="Search text to match against ticker (prefix) or name (contains)")],
1438
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of companies to return")] = None,
1439
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Pagination offset")] = None,
1440
+ _request_timeout: Union[
1441
+ None,
1442
+ Annotated[StrictFloat, Field(gt=0)],
1443
+ Tuple[
1444
+ Annotated[StrictFloat, Field(gt=0)],
1445
+ Annotated[StrictFloat, Field(gt=0)]
1446
+ ]
1447
+ ] = None,
1448
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1449
+ _content_type: Optional[StrictStr] = None,
1450
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1451
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1452
+ ) -> RESTResponseType:
1453
+ """Search companies
1454
+
1455
+ Search companies by ticker or name. Minimum tier for display: FREE.
1456
+
1457
+ :param query: Search text to match against ticker (prefix) or name (contains) (required)
1458
+ :type query: str
1459
+ :param limit: Maximum number of companies to return
1460
+ :type limit: int
1461
+ :param offset: Pagination offset
1462
+ :type offset: int
1463
+ :param _request_timeout: timeout setting for this request. If one
1464
+ number provided, it will be total request
1465
+ timeout. It can also be a pair (tuple) of
1466
+ (connection, read) timeouts.
1467
+ :type _request_timeout: int, tuple(int, int), optional
1468
+ :param _request_auth: set to override the auth_settings for an a single
1469
+ request; this effectively ignores the
1470
+ authentication in the spec for a single request.
1471
+ :type _request_auth: dict, optional
1472
+ :param _content_type: force content-type for the request.
1473
+ :type _content_type: str, Optional
1474
+ :param _headers: set to override the headers for a single
1475
+ request; this effectively ignores the headers
1476
+ in the spec for a single request.
1477
+ :type _headers: dict, optional
1478
+ :param _host_index: set to override the host_index for a single
1479
+ request; this effectively ignores the host_index
1480
+ in the spec for a single request.
1481
+ :type _host_index: int, optional
1482
+ :return: Returns the result object.
1483
+ """ # noqa: E501
1484
+
1485
+ _param = self._company_search_serialize(
1486
+ query=query,
1487
+ limit=limit,
1488
+ offset=offset,
1489
+ _request_auth=_request_auth,
1490
+ _content_type=_content_type,
1491
+ _headers=_headers,
1492
+ _host_index=_host_index
1493
+ )
1494
+
1495
+ _response_types_map: Dict[str, Optional[str]] = {
1496
+ '200': "CompanySearch200Response",
1497
+ '400': "CompanyAvailableCompanies401Response",
1498
+ '401': "CompanyAvailableCompanies401Response",
1499
+ '500': "CompanyAvailableCompanies401Response",
1500
+ }
1501
+ response_data = self.api_client.call_api(
1502
+ *_param,
1503
+ _request_timeout=_request_timeout
1504
+ )
1505
+ return response_data.response
1506
+
1507
+
1508
+ def _company_search_serialize(
1509
+ self,
1510
+ query,
1511
+ limit,
1512
+ offset,
1513
+ _request_auth,
1514
+ _content_type,
1515
+ _headers,
1516
+ _host_index,
1517
+ ) -> RequestSerialized:
1518
+
1519
+ _host = None
1520
+
1521
+ _collection_formats: Dict[str, str] = {
1522
+ }
1523
+
1524
+ _path_params: Dict[str, str] = {}
1525
+ _query_params: List[Tuple[str, str]] = []
1526
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1527
+ _form_params: List[Tuple[str, str]] = []
1528
+ _files: Dict[
1529
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1530
+ ] = {}
1531
+ _body_params: Optional[bytes] = None
1532
+
1533
+ # process the path parameters
1534
+ # process the query parameters
1535
+ if query is not None:
1536
+
1537
+ _query_params.append(('query', query))
1538
+
1539
+ if limit is not None:
1540
+
1541
+ _query_params.append(('limit', limit))
1542
+
1543
+ if offset is not None:
1544
+
1545
+ _query_params.append(('offset', offset))
1546
+
1547
+ # process the header parameters
1548
+ # process the form parameters
1549
+ # process the body parameter
1550
+
1551
+
1552
+ # set the HTTP header `Accept`
1553
+ if 'Accept' not in _header_params:
1554
+ _header_params['Accept'] = self.api_client.select_header_accept(
1555
+ [
1556
+ 'application/json'
1557
+ ]
1558
+ )
1559
+
1560
+
1561
+ # authentication setting
1562
+ _auth_settings: List[str] = [
1563
+ 'bearerAuth'
1564
+ ]
1565
+
1566
+ return self.api_client.param_serialize(
1567
+ method='GET',
1568
+ resource_path='/v1/company/search',
1569
+ path_params=_path_params,
1570
+ query_params=_query_params,
1571
+ header_params=_header_params,
1572
+ body=_body_params,
1573
+ post_params=_form_params,
1574
+ files=_files,
1575
+ auth_settings=_auth_settings,
1576
+ collection_formats=_collection_formats,
1577
+ _host=_host,
1578
+ _request_auth=_request_auth
1579
+ )
1580
+
1581
+
1582
+
1583
+
1584
+ @validate_call
1585
+ def company_splits(
1586
+ self,
1587
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
1588
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for splits by execution_date")] = None,
1589
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of splits to return")] = None,
1590
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of splits to skip for pagination")] = None,
1591
+ _request_timeout: Union[
1592
+ None,
1593
+ Annotated[StrictFloat, Field(gt=0)],
1594
+ Tuple[
1595
+ Annotated[StrictFloat, Field(gt=0)],
1596
+ Annotated[StrictFloat, Field(gt=0)]
1597
+ ]
1598
+ ] = None,
1599
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1600
+ _content_type: Optional[StrictStr] = None,
1601
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1602
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1603
+ ) -> CompanySplits200Response:
1604
+ """Stock splits
1605
+
1606
+ Fetch stock splits for a company. Minimum tier for redistribute: PRO.
1607
+
1608
+ :param identifier: Ticker symbol or CIK (required)
1609
+ :type identifier: str
1610
+ :param sort: Sort direction for splits by execution_date
1611
+ :type sort: str
1612
+ :param limit: Maximum number of splits to return
1613
+ :type limit: int
1614
+ :param offset: Number of splits to skip for pagination
1615
+ :type offset: int
1616
+ :param _request_timeout: timeout setting for this request. If one
1617
+ number provided, it will be total request
1618
+ timeout. It can also be a pair (tuple) of
1619
+ (connection, read) timeouts.
1620
+ :type _request_timeout: int, tuple(int, int), optional
1621
+ :param _request_auth: set to override the auth_settings for an a single
1622
+ request; this effectively ignores the
1623
+ authentication in the spec for a single request.
1624
+ :type _request_auth: dict, optional
1625
+ :param _content_type: force content-type for the request.
1626
+ :type _content_type: str, Optional
1627
+ :param _headers: set to override the headers for a single
1628
+ request; this effectively ignores the headers
1629
+ in the spec for a single request.
1630
+ :type _headers: dict, optional
1631
+ :param _host_index: set to override the host_index for a single
1632
+ request; this effectively ignores the host_index
1633
+ in the spec for a single request.
1634
+ :type _host_index: int, optional
1635
+ :return: Returns the result object.
1636
+ """ # noqa: E501
1637
+
1638
+ _param = self._company_splits_serialize(
1639
+ identifier=identifier,
1640
+ sort=sort,
1641
+ limit=limit,
1642
+ offset=offset,
1643
+ _request_auth=_request_auth,
1644
+ _content_type=_content_type,
1645
+ _headers=_headers,
1646
+ _host_index=_host_index
1647
+ )
1648
+
1649
+ _response_types_map: Dict[str, Optional[str]] = {
1650
+ '200': "CompanySplits200Response",
1651
+ '400': "CompanyAvailableCompanies401Response",
1652
+ '401': "CompanyAvailableCompanies401Response",
1653
+ '404': "CompanyAvailableCompanies401Response",
1654
+ '500': "CompanyAvailableCompanies401Response",
1655
+ }
1656
+ response_data = self.api_client.call_api(
1657
+ *_param,
1658
+ _request_timeout=_request_timeout
1659
+ )
1660
+ response_data.read()
1661
+ return self.api_client.response_deserialize(
1662
+ response_data=response_data,
1663
+ response_types_map=_response_types_map,
1664
+ ).data
1665
+
1666
+
1667
+ @validate_call
1668
+ def company_splits_with_http_info(
1669
+ self,
1670
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
1671
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for splits by execution_date")] = None,
1672
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of splits to return")] = None,
1673
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of splits to skip for pagination")] = None,
1674
+ _request_timeout: Union[
1675
+ None,
1676
+ Annotated[StrictFloat, Field(gt=0)],
1677
+ Tuple[
1678
+ Annotated[StrictFloat, Field(gt=0)],
1679
+ Annotated[StrictFloat, Field(gt=0)]
1680
+ ]
1681
+ ] = None,
1682
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1683
+ _content_type: Optional[StrictStr] = None,
1684
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1685
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1686
+ ) -> ApiResponse[CompanySplits200Response]:
1687
+ """Stock splits
1688
+
1689
+ Fetch stock splits for a company. Minimum tier for redistribute: PRO.
1690
+
1691
+ :param identifier: Ticker symbol or CIK (required)
1692
+ :type identifier: str
1693
+ :param sort: Sort direction for splits by execution_date
1694
+ :type sort: str
1695
+ :param limit: Maximum number of splits to return
1696
+ :type limit: int
1697
+ :param offset: Number of splits to skip for pagination
1698
+ :type offset: int
1699
+ :param _request_timeout: timeout setting for this request. If one
1700
+ number provided, it will be total request
1701
+ timeout. It can also be a pair (tuple) of
1702
+ (connection, read) timeouts.
1703
+ :type _request_timeout: int, tuple(int, int), optional
1704
+ :param _request_auth: set to override the auth_settings for an a single
1705
+ request; this effectively ignores the
1706
+ authentication in the spec for a single request.
1707
+ :type _request_auth: dict, optional
1708
+ :param _content_type: force content-type for the request.
1709
+ :type _content_type: str, Optional
1710
+ :param _headers: set to override the headers for a single
1711
+ request; this effectively ignores the headers
1712
+ in the spec for a single request.
1713
+ :type _headers: dict, optional
1714
+ :param _host_index: set to override the host_index for a single
1715
+ request; this effectively ignores the host_index
1716
+ in the spec for a single request.
1717
+ :type _host_index: int, optional
1718
+ :return: Returns the result object.
1719
+ """ # noqa: E501
1720
+
1721
+ _param = self._company_splits_serialize(
1722
+ identifier=identifier,
1723
+ sort=sort,
1724
+ limit=limit,
1725
+ offset=offset,
1726
+ _request_auth=_request_auth,
1727
+ _content_type=_content_type,
1728
+ _headers=_headers,
1729
+ _host_index=_host_index
1730
+ )
1731
+
1732
+ _response_types_map: Dict[str, Optional[str]] = {
1733
+ '200': "CompanySplits200Response",
1734
+ '400': "CompanyAvailableCompanies401Response",
1735
+ '401': "CompanyAvailableCompanies401Response",
1736
+ '404': "CompanyAvailableCompanies401Response",
1737
+ '500': "CompanyAvailableCompanies401Response",
1738
+ }
1739
+ response_data = self.api_client.call_api(
1740
+ *_param,
1741
+ _request_timeout=_request_timeout
1742
+ )
1743
+ response_data.read()
1744
+ return self.api_client.response_deserialize(
1745
+ response_data=response_data,
1746
+ response_types_map=_response_types_map,
1747
+ )
1748
+
1749
+
1750
+ @validate_call
1751
+ def company_splits_without_preload_content(
1752
+ self,
1753
+ identifier: Annotated[StrictStr, Field(description="Ticker symbol or CIK")],
1754
+ sort: Annotated[Optional[StrictStr], Field(description="Sort direction for splits by execution_date")] = None,
1755
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of splits to return")] = None,
1756
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Number of splits to skip for pagination")] = None,
1757
+ _request_timeout: Union[
1758
+ None,
1759
+ Annotated[StrictFloat, Field(gt=0)],
1760
+ Tuple[
1761
+ Annotated[StrictFloat, Field(gt=0)],
1762
+ Annotated[StrictFloat, Field(gt=0)]
1763
+ ]
1764
+ ] = None,
1765
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1766
+ _content_type: Optional[StrictStr] = None,
1767
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1768
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1769
+ ) -> RESTResponseType:
1770
+ """Stock splits
1771
+
1772
+ Fetch stock splits for a company. Minimum tier for redistribute: PRO.
1773
+
1774
+ :param identifier: Ticker symbol or CIK (required)
1775
+ :type identifier: str
1776
+ :param sort: Sort direction for splits by execution_date
1777
+ :type sort: str
1778
+ :param limit: Maximum number of splits to return
1779
+ :type limit: int
1780
+ :param offset: Number of splits to skip for pagination
1781
+ :type offset: int
1782
+ :param _request_timeout: timeout setting for this request. If one
1783
+ number provided, it will be total request
1784
+ timeout. It can also be a pair (tuple) of
1785
+ (connection, read) timeouts.
1786
+ :type _request_timeout: int, tuple(int, int), optional
1787
+ :param _request_auth: set to override the auth_settings for an a single
1788
+ request; this effectively ignores the
1789
+ authentication in the spec for a single request.
1790
+ :type _request_auth: dict, optional
1791
+ :param _content_type: force content-type for the request.
1792
+ :type _content_type: str, Optional
1793
+ :param _headers: set to override the headers for a single
1794
+ request; this effectively ignores the headers
1795
+ in the spec for a single request.
1796
+ :type _headers: dict, optional
1797
+ :param _host_index: set to override the host_index for a single
1798
+ request; this effectively ignores the host_index
1799
+ in the spec for a single request.
1800
+ :type _host_index: int, optional
1801
+ :return: Returns the result object.
1802
+ """ # noqa: E501
1803
+
1804
+ _param = self._company_splits_serialize(
1805
+ identifier=identifier,
1806
+ sort=sort,
1807
+ limit=limit,
1808
+ offset=offset,
1809
+ _request_auth=_request_auth,
1810
+ _content_type=_content_type,
1811
+ _headers=_headers,
1812
+ _host_index=_host_index
1813
+ )
1814
+
1815
+ _response_types_map: Dict[str, Optional[str]] = {
1816
+ '200': "CompanySplits200Response",
1817
+ '400': "CompanyAvailableCompanies401Response",
1818
+ '401': "CompanyAvailableCompanies401Response",
1819
+ '404': "CompanyAvailableCompanies401Response",
1820
+ '500': "CompanyAvailableCompanies401Response",
1821
+ }
1822
+ response_data = self.api_client.call_api(
1823
+ *_param,
1824
+ _request_timeout=_request_timeout
1825
+ )
1826
+ return response_data.response
1827
+
1828
+
1829
+ def _company_splits_serialize(
1830
+ self,
1831
+ identifier,
1832
+ sort,
1833
+ limit,
1834
+ offset,
1835
+ _request_auth,
1836
+ _content_type,
1837
+ _headers,
1838
+ _host_index,
1839
+ ) -> RequestSerialized:
1840
+
1841
+ _host = None
1842
+
1843
+ _collection_formats: Dict[str, str] = {
1844
+ }
1845
+
1846
+ _path_params: Dict[str, str] = {}
1847
+ _query_params: List[Tuple[str, str]] = []
1848
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1849
+ _form_params: List[Tuple[str, str]] = []
1850
+ _files: Dict[
1851
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1852
+ ] = {}
1853
+ _body_params: Optional[bytes] = None
1854
+
1855
+ # process the path parameters
1856
+ # process the query parameters
1857
+ if identifier is not None:
1858
+
1859
+ _query_params.append(('identifier', identifier))
1860
+
1861
+ if sort is not None:
1862
+
1863
+ _query_params.append(('sort', sort))
1864
+
1865
+ if limit is not None:
1866
+
1867
+ _query_params.append(('limit', limit))
1868
+
1869
+ if offset is not None:
1870
+
1871
+ _query_params.append(('offset', offset))
1872
+
1873
+ # process the header parameters
1874
+ # process the form parameters
1875
+ # process the body parameter
1876
+
1877
+
1878
+ # set the HTTP header `Accept`
1879
+ if 'Accept' not in _header_params:
1880
+ _header_params['Accept'] = self.api_client.select_header_accept(
1881
+ [
1882
+ 'application/json'
1883
+ ]
1884
+ )
1885
+
1886
+
1887
+ # authentication setting
1888
+ _auth_settings: List[str] = [
1889
+ 'bearerAuth'
1890
+ ]
1891
+
1892
+ return self.api_client.param_serialize(
1893
+ method='GET',
1894
+ resource_path='/v1/company/splits',
1895
+ path_params=_path_params,
1896
+ query_params=_query_params,
1897
+ header_params=_header_params,
1898
+ body=_body_params,
1899
+ post_params=_form_params,
1900
+ files=_files,
1901
+ auth_settings=_auth_settings,
1902
+ collection_formats=_collection_formats,
1903
+ _host=_host,
1904
+ _request_auth=_request_auth
1905
+ )
1906
+
1907
+