webull-openapi-python-sdk 2.0.18__tar.gz → 3.0.0__tar.gz

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 (339) hide show
  1. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/PKG-INFO +1 -1
  2. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/screener/screener_client.py +55 -2
  3. webull_openapi_python_sdk-3.0.0/webull/__init__.py +1 -0
  4. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/__init__.py +1 -1
  5. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/config/bean/query_config_request.py +1 -1
  6. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/bean/check_token_request.py +1 -1
  7. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/bean/create_token_request.py +1 -1
  8. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/bean/refresh_token_request.py +1 -1
  9. webull_openapi_python_sdk-3.0.0/webull/data/__init__.py +3 -0
  10. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/data_streaming_client.py +3 -1
  11. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/quotes_client.py +2 -2
  12. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/fundamentals.py +19 -0
  13. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/instrument.py +148 -1
  14. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/screener.py +179 -0
  15. webull_openapi_python_sdk-3.0.0/webull/data/quotes/subscribe/notice_decoder.py +34 -0
  16. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/payload_type.py +2 -1
  17. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_analyst_rating_request.py +2 -1
  18. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_analyst_target_price_request.py +2 -1
  19. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_batch_historical_bars_request.py +1 -1
  20. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_capital_flow_request.py +1 -1
  21. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_company_profile_request.py +2 -1
  22. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_corp_action_request.py +1 -1
  23. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_crypto_historical_bars_request.py +1 -1
  24. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_crypto_instruments_request.py +5 -1
  25. webull_openapi_python_sdk-3.0.0/webull/data/request/get_crypto_instruments_request_v2.py +41 -0
  26. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_crypto_snapshot_request.py +1 -1
  27. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_dividend_calendar_request.py +1 -1
  28. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_earnings_calendar_request.py +1 -1
  29. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_eod_bars_request.py +1 -1
  30. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_bars_request.py +1 -1
  31. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_depth_request.py +2 -1
  32. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_events_request.py +2 -1
  33. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_instrument_request.py +5 -1
  34. webull_openapi_python_sdk-3.0.0/webull/data/request/get_event_instrument_request_v2.py +45 -0
  35. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_series_categories.py +2 -1
  36. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_series_request.py +5 -1
  37. webull_openapi_python_sdk-3.0.0/webull/data/request/get_event_series_request_v2.py +37 -0
  38. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_snapshot_request.py +2 -1
  39. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_event_tick_request.py +2 -1
  40. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_financials_alert_request.py +1 -1
  41. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_financials_balance_sheet_request.py +1 -1
  42. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_financials_cashflow_request.py +1 -1
  43. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_financials_income_request.py +1 -1
  44. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_financials_indicators_request.py +1 -1
  45. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_footprint_request.py +1 -1
  46. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_forecast_eps_request.py +1 -1
  47. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_allocation_request.py +1 -1
  48. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_brief_request.py +1 -1
  49. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_dividends_request.py +5 -1
  50. webull_openapi_python_sdk-3.0.0/webull/data/request/get_fund_dividends_request_v2.py +35 -0
  51. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_files_request.py +1 -1
  52. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_holdings_request.py +1 -1
  53. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_net_value_request.py +1 -1
  54. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_performance_request.py +1 -1
  55. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_rating_request.py +1 -1
  56. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_fund_splits_request.py +1 -1
  57. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_depth_request.py +1 -1
  58. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_footprint_request.py +1 -1
  59. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_historical_bars_request.py +1 -1
  60. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_instruments_by_code_request.py +1 -1
  61. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_instruments_request.py +2 -1
  62. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_product_class.py +2 -1
  63. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_products_request.py +2 -1
  64. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_snapshot_request.py +1 -1
  65. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_futures_tick_request.py +1 -1
  66. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_historical_bars_request.py +1 -1
  67. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_industry_comparison_request.py +1 -1
  68. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_instruments_request.py +5 -1
  69. webull_openapi_python_sdk-3.0.0/webull/data/request/get_instruments_request_v2.py +44 -0
  70. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_noii_bars_request.py +1 -1
  71. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_noii_snapshot_request.py +2 -1
  72. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_option_bars_request.py +1 -1
  73. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_option_contracts_request.py +5 -1
  74. webull_openapi_python_sdk-3.0.0/webull/data/request/get_option_contracts_request_v2.py +78 -0
  75. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_option_snapshot_request.py +1 -1
  76. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_option_tick_request.py +1 -1
  77. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_quotes_request.py +1 -1
  78. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_sec_filings_request.py +1 -1
  79. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_snapshot_request.py +1 -1
  80. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/get_tick_request.py +1 -1
  81. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_52whl_request.py +4 -0
  82. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_52whl_request_v2.py +45 -0
  83. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_gainers_losers_request.py +5 -1
  84. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_gainers_losers_request_v2.py +94 -0
  85. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_high_dividend_request.py +4 -0
  86. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_high_dividend_request_v2.py +41 -0
  87. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_market_sectors_detail_request.py +4 -0
  88. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_market_sectors_detail_request_v2.py +47 -0
  89. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_market_sectors_request.py +5 -1
  90. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_market_sectors_request_v2.py +43 -0
  91. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/get_most_active_request.py +5 -1
  92. webull_openapi_python_sdk-3.0.0/webull/data/request/screener/get_most_active_request_v2.py +92 -0
  93. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/subscribe_request.py +1 -1
  94. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/unsubscribe_request.py +1 -1
  95. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/add_watchlist_instruments_request.py +2 -1
  96. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/create_watchlist_request.py +1 -1
  97. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/delete_watchlist_request.py +1 -1
  98. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/get_watchlist_instruments_request.py +2 -1
  99. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/get_watchlist_request.py +1 -1
  100. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/remove_watchlist_instruments_request.py +2 -1
  101. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/update_watchlist_instruments_request.py +2 -1
  102. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/update_watchlist_request.py +1 -1
  103. webull_openapi_python_sdk-3.0.0/webull/trade/__init__.py +1 -0
  104. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/cancel_order_request.py +1 -1
  105. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_account_balance_request.py +1 -1
  106. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_account_positions_request.py +1 -1
  107. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_account_profile_request.py +1 -1
  108. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_activities_request.py +4 -0
  109. webull_openapi_python_sdk-3.0.0/webull/trade/request/get_activities_request_v2.py +41 -0
  110. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_app_subscriptions.py +1 -1
  111. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_open_orders_request.py +1 -1
  112. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_order_detail_request.py +1 -1
  113. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_today_orders_request.py +1 -1
  114. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_trade_calendar_request.py +1 -1
  115. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_trade_instrument_detail_request.py +1 -1
  116. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_trade_security_detail_request.py +1 -1
  117. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/get_tradeable_instruments_request.py +1 -1
  118. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/palce_order_request.py +1 -1
  119. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/place_order_request.py +1 -1
  120. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/place_order_request_v2.py +1 -1
  121. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/replace_order_request.py +1 -1
  122. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/replace_order_request_v2.py +1 -1
  123. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/cancel_option_request.py +1 -1
  124. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/cancel_order_request.py +1 -1
  125. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_account_balance_request.py +1 -1
  126. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_account_list.py +1 -3
  127. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_account_list_request.py +1 -3
  128. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_account_position_details_request.py +4 -0
  129. webull_openapi_python_sdk-3.0.0/webull/trade/request/v2/get_account_position_details_request_v2.py +31 -0
  130. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_account_positions_request.py +1 -1
  131. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_order_detail_request.py +1 -1
  132. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_order_executions_request.py +5 -0
  133. webull_openapi_python_sdk-3.0.0/webull/trade/request/v2/get_order_executions_request_v2.py +35 -0
  134. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_order_history_request.py +1 -1
  135. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/get_order_open_request.py +1 -1
  136. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/palce_order_request.py +1 -1
  137. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/place_option_request.py +1 -1
  138. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/place_order_request.py +1 -1
  139. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/preview_option_request.py +1 -1
  140. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/preview_order_request.py +1 -1
  141. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/replace_option_request.py +1 -1
  142. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/replace_order_request.py +1 -1
  143. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/batch_place_order_request.py +1 -1
  144. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/cancel_order_request.py +1 -1
  145. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/get_order_detail_request.py +1 -1
  146. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/get_order_history_request.py +5 -1
  147. webull_openapi_python_sdk-3.0.0/webull/trade/request/v3/get_order_history_request_v2.py +35 -0
  148. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/get_order_open_request.py +5 -1
  149. webull_openapi_python_sdk-3.0.0/webull/trade/request/v3/get_order_open_request_v2.py +27 -0
  150. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/place_order_request.py +1 -1
  151. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/preview_order_request.py +1 -1
  152. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/replace_order_request.py +1 -1
  153. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/activity.py +33 -0
  154. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/v2/account_info_v2.py +24 -0
  155. webull_openapi_python_sdk-2.0.18/webull/trade/trade/v3/order_opration_v3.py → webull_openapi_python_sdk-3.0.0/webull/trade/trade/v3/order_operation_v3.py +94 -1
  156. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade_client.py +1 -1
  157. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull_openapi_python_sdk.egg-info/PKG-INFO +1 -1
  158. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull_openapi_python_sdk.egg-info/SOURCES.txt +19 -1
  159. webull_openapi_python_sdk-2.0.18/webull/__init__.py +0 -1
  160. webull_openapi_python_sdk-2.0.18/webull/data/__init__.py +0 -3
  161. webull_openapi_python_sdk-2.0.18/webull/trade/__init__.py +0 -1
  162. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/ChangeLog.txt +0 -0
  163. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/LICENSE +0 -0
  164. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/MANIFEST.in +0 -0
  165. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/NOTICE +0 -0
  166. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/README.rst +0 -0
  167. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/__init__.py +0 -0
  168. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/account/__init__.py +0 -0
  169. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/account/account_client.py +0 -0
  170. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/assets/__init__.py +0 -0
  171. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/assets/assets_client.py +0 -0
  172. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/__init__.py +0 -0
  173. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/data_client.py +0 -0
  174. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/data_client_event.py +0 -0
  175. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/data_streaming_client.py +0 -0
  176. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/data_streaming_client_async.py +0 -0
  177. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/data/data_streaming_client_event.py +0 -0
  178. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/order/__init__.py +0 -0
  179. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/order/order_option_client.py +0 -0
  180. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/order/order_stock_client.py +0 -0
  181. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/screener/__init__.py +0 -0
  182. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/__init__.py +0 -0
  183. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/trade_client.py +0 -0
  184. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/trade_client_v2.py +0 -0
  185. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/trade_client_v3.py +0 -0
  186. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/trade_client_v3_event.py +0 -0
  187. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/trade/trade_event_client.py +0 -0
  188. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/watchlist/__init__.py +0 -0
  189. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/samples/watchlist/watchlist_client.py +0 -0
  190. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/setup.cfg +0 -0
  191. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/setup.py +0 -0
  192. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/__init__.py +0 -0
  193. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/algorithm/__init__.py +0 -0
  194. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/algorithm/sha_hmac1.py +0 -0
  195. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/algorithm/sha_hmac256.py +0 -0
  196. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/algorithm/sha_hmac256_new.py +0 -0
  197. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/composer/__init__.py +0 -0
  198. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/composer/default_signature_composer.py +0 -0
  199. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/credentials.py +0 -0
  200. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/signers/__init__.py +0 -0
  201. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/signers/app_key_signer.py +0 -0
  202. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/signers/signer.py +0 -0
  203. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/auth/signers/signer_factory.py +0 -0
  204. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/cache/__init__.py +0 -0
  205. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/client.py +0 -0
  206. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/common/__init__.py +0 -0
  207. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/common/api_type.py +0 -0
  208. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/common/easy_enum.py +0 -0
  209. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/common/region.py +0 -0
  210. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/compat.py +0 -0
  211. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/context/__init__.py +0 -0
  212. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/context/request_context_holder.py +0 -0
  213. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/data/endpoints.json +0 -0
  214. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/data/retry_config.json +0 -0
  215. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/__init__.py +0 -0
  216. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/chained_endpoint_resolver.py +0 -0
  217. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/default_endpoint_resolver.py +0 -0
  218. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/local_config_regional_endpoint_resolver.py +0 -0
  219. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/resolver_endpoint_request.py +0 -0
  220. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/endpoint/user_customized_endpoint_resolver.py +0 -0
  221. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/exception/__init__.py +0 -0
  222. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/exception/error_code.py +0 -0
  223. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/exception/error_msg.py +0 -0
  224. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/exception/exceptions.py +0 -0
  225. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/headers.py +0 -0
  226. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/__init__.py +0 -0
  227. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/__init__.py +0 -0
  228. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/client_initializer.py +0 -0
  229. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/config/__init__.py +0 -0
  230. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/config/bean/__init__.py +0 -0
  231. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/config/config_operation.py +0 -0
  232. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/__init__.py +0 -0
  233. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/bean/__init__.py +0 -0
  234. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/bean/access_token.py +0 -0
  235. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/token_manager.py +0 -0
  236. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/token_operation.py +0 -0
  237. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/initializer/token/token_storage.py +0 -0
  238. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/method_type.py +0 -0
  239. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/protocol_type.py +0 -0
  240. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/request.py +0 -0
  241. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/http/response.py +0 -0
  242. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/request.py +0 -0
  243. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/retry/__init__.py +0 -0
  244. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/retry/backoff_strategy.py +0 -0
  245. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/retry/retry_condition.py +0 -0
  246. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/retry/retry_policy.py +0 -0
  247. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/retry/retry_policy_context.py +0 -0
  248. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/utils/__init__.py +0 -0
  249. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/utils/common.py +0 -0
  250. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/utils/data.py +0 -0
  251. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/utils/desensitize.py +0 -0
  252. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/core/utils/validation.py +0 -0
  253. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/__init__.py +0 -0
  254. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/category.py +0 -0
  255. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/connect_ack.py +0 -0
  256. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/contract_type.py +0 -0
  257. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/direction.py +0 -0
  258. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/exchange_code.py +0 -0
  259. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/exercise_style.py +0 -0
  260. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/expiration_cycle.py +0 -0
  261. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/instrument_status.py +0 -0
  262. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/option_type.py +0 -0
  263. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/subscribe_type.py +0 -0
  264. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/common/timespan.py +0 -0
  265. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/data_client.py +0 -0
  266. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/__init__.py +0 -0
  267. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/default_retry_policy.py +0 -0
  268. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/exceptions.py +0 -0
  269. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/quotes_decoder.py +0 -0
  270. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/quotes_payload_decoder.py +0 -0
  271. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/internal/quotes_topic.py +0 -0
  272. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/__init__.py +0 -0
  273. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/crypto_market_data.py +0 -0
  274. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/event_market_data.py +0 -0
  275. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/futures_market_data.py +0 -0
  276. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/market_data.py +0 -0
  277. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/market_streaming_data.py +0 -0
  278. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/option_market_data.py +0 -0
  279. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/__init__.py +0 -0
  280. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/ask_bid_result.py +0 -0
  281. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/basic_result.py +0 -0
  282. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/broker_result.py +0 -0
  283. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_depth_decoder.py +0 -0
  284. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_depth_result.py +0 -0
  285. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_snapshot_decoder.py +0 -0
  286. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_snapshot_result.py +0 -0
  287. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_tick_decoder.py +0 -0
  288. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/event_tick_result.py +0 -0
  289. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/message_pb2.py +0 -0
  290. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/order_result.py +0 -0
  291. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/quote_decoder.py +0 -0
  292. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/quote_result.py +0 -0
  293. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/snapshot_decoder.py +0 -0
  294. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/snapshot_result.py +0 -0
  295. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/tick_decoder.py +0 -0
  296. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/subscribe/tick_result.py +0 -0
  297. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/quotes/watchlist.py +0 -0
  298. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/__init__.py +0 -0
  299. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/screener/__init__.py +0 -0
  300. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/data/request/watchlist/__init__.py +0 -0
  301. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/__init__.py +0 -0
  302. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/account_type.py +0 -0
  303. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/category.py +0 -0
  304. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/combo_ticker_type.py +0 -0
  305. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/combo_type.py +0 -0
  306. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/currency.py +0 -0
  307. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/forbid_reason.py +0 -0
  308. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/instrument_type.py +0 -0
  309. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/markets.py +0 -0
  310. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/order_entrust_type.py +0 -0
  311. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/order_side.py +0 -0
  312. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/order_status.py +0 -0
  313. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/order_tif.py +0 -0
  314. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/order_type.py +0 -0
  315. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/position_intent.py +0 -0
  316. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/trade_policy.py +0 -0
  317. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/trading_date_type.py +0 -0
  318. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/common/trailing_type.py +0 -0
  319. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/__init__.py +0 -0
  320. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/default_retry_policy.py +0 -0
  321. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/events_pb2.py +0 -0
  322. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/events_pb2_grpc.py +0 -0
  323. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/signature_composer.py +0 -0
  324. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/events/types.py +0 -0
  325. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/__init__.py +0 -0
  326. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v2/__init__.py +0 -0
  327. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/request/v3/__init__.py +0 -0
  328. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/__init__.py +0 -0
  329. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/account_info.py +0 -0
  330. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/order_operation.py +0 -0
  331. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/trade_calendar.py +0 -0
  332. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/trade_instrument.py +0 -0
  333. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/v2/__init__.py +0 -0
  334. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/v2/order_operation_v2.py +0 -0
  335. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade/v3/__init__.py +0 -0
  336. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull/trade/trade_events_client.py +0 -0
  337. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull_openapi_python_sdk.egg-info/dependency_links.txt +0 -0
  338. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull_openapi_python_sdk.egg-info/requires.txt +0 -0
  339. {webull_openapi_python_sdk-2.0.18 → webull_openapi_python_sdk-3.0.0}/webull_openapi_python_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 2.0.18
3
+ Version: 3.0.0
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -98,8 +98,8 @@ if __name__ == '__main__':
98
98
  # Get most active stocks by turnover amount
99
99
  res = data_client.screener.get_most_active(
100
100
  category="US_STOCK",
101
- rank_type="TURNOVER",
102
- sort_by="TURNOVER",
101
+ rank_type="RELATIVE_VOLUME_10D",
102
+ sort_by="RELATIVE_VOLUME_10D",
103
103
  direction="DESC",
104
104
  page_size=10
105
105
  )
@@ -116,3 +116,56 @@ if __name__ == '__main__':
116
116
  )
117
117
  if res.status_code == 200:
118
118
  print('get_high_amplitude_stocks:', res.json())
119
+
120
+ # ------------------------------------------------------------------
121
+ # New endpoints. These rankings are not paginated and return top 200.
122
+ # ------------------------------------------------------------------
123
+
124
+ # Get top gainers for today (new endpoint, no pagination)
125
+ res = data_client.screener.list_gainers_losers(
126
+ rank_type="DAY_1",
127
+ category="US_STOCK",
128
+ sort_by="CHANGE_RATIO",
129
+ direction="DESC"
130
+ )
131
+ if res.status_code == 200:
132
+ print('list_gainers (day):', res.json())
133
+
134
+ # Get top losers for today (new endpoint, no pagination)
135
+ res = data_client.screener.list_gainers_losers(
136
+ rank_type="DAY_1",
137
+ category="US_STOCK",
138
+ sort_by="CHANGE_RATIO",
139
+ direction="ASC"
140
+ )
141
+ if res.status_code == 200:
142
+ print('list_losers (day):', res.json())
143
+
144
+ # Get most active stocks by volume (new endpoint, no pagination)
145
+ res = data_client.screener.list_most_active(
146
+ category="US_STOCK",
147
+ rank_type="VOLUME",
148
+ sort_by="VOLUME",
149
+ direction="DESC"
150
+ )
151
+ if res.status_code == 200:
152
+ print('list_most_active_by_volume:', res.json())
153
+
154
+ # Get high dividend rank list (new endpoint, no pagination)
155
+ res = data_client.screener.list_high_dividend(
156
+ category="US_STOCK",
157
+ sort_by="YIELD",
158
+ direction="DESC"
159
+ )
160
+ if res.status_code == 200:
161
+ print('list_high_dividend:', res.json())
162
+
163
+ # Get 52 week new highs (new endpoint, no pagination)
164
+ res = data_client.screener.list_52whl(
165
+ category="US_STOCK",
166
+ rank_type="NEW_HIGH",
167
+ sort_by="CHANGE_RATIO_52W",
168
+ direction="DESC"
169
+ )
170
+ if res.status_code == 200:
171
+ print('list_52whl_new_high:', res.json())
@@ -0,0 +1 @@
1
+ __version__ = '3.0.0'
@@ -1,4 +1,4 @@
1
- __version__ = '2.0.17'
1
+ __version__ = '3.0.0'
2
2
 
3
3
  import logging
4
4
 
@@ -38,4 +38,4 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class GetConfigRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/openapi/config", version='v2', method="GET", query_params={})
41
+ super().__init__("/openapi/config", version='v3', method="GET", query_params={})
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class CheckTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/openapi/auth/token/check", version='v2', method="POST", body_params={})
41
+ super().__init__("/auth/tokens/check", version='v3', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  self.add_body_params("token", token)
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class CreateTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/openapi/auth/token/create", version='v2', method="POST", body_params={})
41
+ super().__init__("/auth/tokens/create", version='v3', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  if token:
@@ -38,7 +38,7 @@ from webull.core.request import ApiRequest
38
38
 
39
39
  class RefreshTokenRequest(ApiRequest):
40
40
  def __init__(self):
41
- super().__init__("/openapi/auth/token/refresh", version='v2', method="POST", body_params={})
41
+ super().__init__("/openapi/auth/token/refresh", version='v3', method="POST", body_params={})
42
42
 
43
43
  def set_token(self, token):
44
44
  self.add_body_params("token", token)
@@ -0,0 +1,3 @@
1
+ # coding=utf-8
2
+
3
+ __version__ = '3.0.0'
@@ -20,10 +20,11 @@ from webull.data.quotes.subscribe.event_depth_decoder import EventDepthDecoder
20
20
  from webull.data.quotes.subscribe.event_snapshot_decoder import EventSnapshotDecoder
21
21
  from webull.data.quotes.subscribe.event_tick_decoder import EventTickDecoder
22
22
  from webull.data.quotes.subscribe.payload_type import PAYLOAD_TYPE_QUOTE, PAYLOAD_TYPE_SHAPSHOT, PAYLOAD_TYPE_TICK, \
23
- PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH, PAYLOAD_TYPE_EVENT_TICK
23
+ PAYLOAD_TYPE_EVENT_SHAPSHOT, PAYLOAD_TYPE_EVENT_DEPTH, PAYLOAD_TYPE_EVENT_TICK, PAYLOAD_TYPE_NOTICE
24
24
  from webull.data.quotes.subscribe.quote_decoder import QuoteDecoder
25
25
  from webull.data.quotes.subscribe.snapshot_decoder import SnapshotDecoder
26
26
  from webull.data.quotes.subscribe.tick_decoder import TickDecoder
27
+ from webull.data.quotes.subscribe.notice_decoder import NoticeDecoder
27
28
 
28
29
 
29
30
  class DataStreamingClient(QuotesClient):
@@ -46,6 +47,7 @@ class DataStreamingClient(QuotesClient):
46
47
  self.register_payload_decoder(PAYLOAD_TYPE_EVENT_DEPTH, EventDepthDecoder())
47
48
  self.register_payload_decoder(PAYLOAD_TYPE_EVENT_SHAPSHOT, EventSnapshotDecoder())
48
49
  self.register_payload_decoder(PAYLOAD_TYPE_EVENT_TICK, EventTickDecoder())
50
+ self.register_payload_decoder(PAYLOAD_TYPE_NOTICE, NoticeDecoder())
49
51
 
50
52
  @property
51
53
  def on_connect_success(self):
@@ -83,7 +83,7 @@ class QuotesClient(mqttc.Client):
83
83
  client._easy_log(
84
84
  LOG_DEBUG, 'decoded message topic: %s, payload: %s', decoded[0], decoded[1])
85
85
  _on_quotes_message = client._on_quotes_message
86
- no_callback_topic = ['echo','notice']
86
+ no_callback_topic = ['echo']
87
87
  if _on_quotes_message and decoded[0] not in no_callback_topic:
88
88
  _on_quotes_message(client, decoded[0], decoded[1])
89
89
  else:
@@ -115,7 +115,7 @@ class QuotesClient(mqttc.Client):
115
115
 
116
116
  self._quotes_message = _quotes_message
117
117
  self._quotes_on_connect = _quotes_on_connect
118
- mqttc.Client.__init__(self, self._client_id, transport=transport, reconnect_on_failure=False)
118
+ mqttc.Client.__init__(self, client_id=self._client_id, transport=transport, reconnect_on_failure=False)
119
119
  self.username_pw_set(self._app_key, uuid.uuid4().hex)
120
120
  if tls_enable:
121
121
  self.tls_set()
@@ -27,6 +27,7 @@ from webull.data.request.get_fund_net_value_request import GetFundNetValueReques
27
27
  from webull.data.request.get_fund_holdings_request import GetFundHoldingsRequest
28
28
  from webull.data.request.get_fund_files_request import GetFundFilesRequest
29
29
  from webull.data.request.get_fund_dividends_request import GetFundDividendsRequest
30
+ from webull.data.request.get_fund_dividends_request_v2 import GetFundDividendsRequestV2
30
31
  from webull.data.request.get_fund_brief_request import GetFundBriefRequest
31
32
  from webull.data.request.get_fund_allocation_request import GetFundAllocationRequest
32
33
  from webull.data.request.get_financials_indicators_request import GetFinancialsIndicatorsRequest
@@ -197,6 +198,9 @@ class Fundamentals:
197
198
 
198
199
  def get_fund_dividends(self, symbol, category=Category.US_STOCK.name, page_index=None, page_size=None):
199
200
  """
201
+ .. deprecated::
202
+ Use :meth:`list_fund_dividends` instead.
203
+
200
204
  Query fund dividends for a security.
201
205
 
202
206
  :param symbol: Security symbol, e.g. QQQ.
@@ -212,6 +216,21 @@ class Fundamentals:
212
216
  response = self.client.get_response(request)
213
217
  return response
214
218
 
219
+ def list_fund_dividends(self, symbol, category=Category.US_STOCK.name, pagination_key=None):
220
+ """
221
+ Query fund dividends for a security.
222
+
223
+ :param symbol: Security symbol, e.g. QQQ.
224
+ :param category: Security type. Category values are as shown in the enum.
225
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
226
+ """
227
+ request = GetFundDividendsRequestV2()
228
+ request.set_symbol(symbol)
229
+ request.set_category(category)
230
+ request.set_pagination_key(pagination_key)
231
+ response = self.client.get_response(request)
232
+ return response
233
+
215
234
  def get_fund_brief(self, symbol, category=Category.US_STOCK.name):
216
235
  """
217
236
  Query fund brief information.
@@ -20,7 +20,12 @@ from webull.data.request.get_event_instrument_request import GetEventInstrumentR
20
20
  from webull.data.request.get_event_series_categories import GetEventCategoriesRequest
21
21
  from webull.data.request.get_event_series_request import GetEventSeriesRequest
22
22
  from webull.data.request.get_instruments_request import GetInstrumentsRequest
23
+ from webull.data.request.get_instruments_request_v2 import GetInstrumentsRequestV2
23
24
  from webull.data.request.get_crypto_instruments_request import GetCryptoInstrumentsRequest
25
+ from webull.data.request.get_crypto_instruments_request_v2 import GetCryptoInstrumentsRequestV2
26
+ from webull.data.request.get_event_series_request_v2 import GetEventSeriesRequestV2
27
+ from webull.data.request.get_event_instrument_request_v2 import GetEventInstrumentRequestV2
28
+ from webull.data.request.get_option_contracts_request_v2 import GetOptionContractsRequestV2
24
29
  from webull.data.request.get_futures_instruments_request import GetFuturesInstrumentsRequest
25
30
  from webull.data.request.get_futures_products_request import GetFuturesProductsRequest
26
31
  from webull.data.request.get_futures_instruments_by_code_request import GetFuturesInstrumentsByCodeRequest
@@ -35,6 +40,9 @@ class Instrument:
35
40
  def get_instrument(self, symbols=None, category=Category.US_STOCK.name, status=None, sub_category=None,
36
41
  last_instrument_id=None, page_size=1000):
37
42
  """
43
+ .. deprecated::
44
+ Use :meth:`list_instruments` instead.
45
+
38
46
  Query the underlying information according to the security symbol list and security type.
39
47
 
40
48
  :param symbols: Securities symbol, such as: 00700,00981.
@@ -54,9 +62,32 @@ class Instrument:
54
62
  response = self.client.get_response(instruments_request)
55
63
  return response
56
64
 
65
+ def list_instruments(self, symbols=None, category=Category.US_STOCK.name, status=None, sub_category=None,
66
+ pagination_key=None):
67
+ """
68
+ Query the underlying information according to the security symbol list and security type.
69
+
70
+ :param symbols: Securities symbol, such as: 00700,00981.
71
+ :param category: Security type, enumeration.
72
+ :param status: Tradable status.
73
+ :param sub_category: Security sub category.
74
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
75
+ """
76
+ instruments_request = GetInstrumentsRequestV2()
77
+ instruments_request.set_symbols(symbols)
78
+ instruments_request.set_category(category)
79
+ instruments_request.set_status(status)
80
+ instruments_request.set_sub_category(sub_category)
81
+ instruments_request.set_pagination_key(pagination_key)
82
+ response = self.client.get_response(instruments_request)
83
+ return response
84
+
57
85
  def get_crypto_instrument(self, symbols=None, status=None, last_instrument_id=None,
58
86
  category=Category.US_CRYPTO.name, page_size=1000):
59
87
  """
88
+ .. deprecated::
89
+ Use :meth:`list_crypto_instruments` instead.
90
+
60
91
  Query the crypto underlying information according to the security symbol.
61
92
  :param symbols: Securities symbol, such as: BTCUSD,ETHUSD.
62
93
  :param status: Tradable status.
@@ -75,6 +106,25 @@ class Instrument:
75
106
  response = self.client.get_response(crypto_instruments_request)
76
107
  return response
77
108
 
109
+ def list_crypto_instruments(self, symbols=None, status=None, category=Category.US_CRYPTO.name,
110
+ pagination_key=None):
111
+ """
112
+ Query the crypto underlying information according to the security symbol.
113
+ :param symbols: Securities symbol, such as: BTCUSD,ETHUSD.
114
+ :param status: Tradable status.
115
+ :param category: (str, required) Instrument type.
116
+ Possible values: ["US_CRYPTO"]
117
+ Example: "US_CRYPTO"
118
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
119
+ """
120
+ crypto_instruments_request = GetCryptoInstrumentsRequestV2()
121
+ crypto_instruments_request.set_symbols(symbols)
122
+ crypto_instruments_request.set_category(category)
123
+ crypto_instruments_request.set_status(status)
124
+ crypto_instruments_request.set_pagination_key(pagination_key)
125
+ response = self.client.get_response(crypto_instruments_request)
126
+ return response
127
+
78
128
  def get_futures_instrument(self, symbols=None, category=Category.US_STOCK.name, code=None, status=None):
79
129
  """
80
130
  Query the futures instrument information based on the futures contract symbol.
@@ -155,6 +205,9 @@ class Instrument:
155
205
 
156
206
  def get_event_series(self, category=None, symbols=None, last_series_id=None, page_size=500):
157
207
  """
208
+ .. deprecated::
209
+ Use :meth:`list_event_series` instead.
210
+
158
211
  Retrieve multiple series with specified filters.
159
212
  A series represents a template for recurring events that follow the same format and rules (e.g., “Monthly Jobs Report” ).
160
213
  This endpoint allows you to browse and discover available series templates by category.
@@ -178,6 +231,28 @@ class Instrument:
178
231
  response = self.client.get_response(event_series_request)
179
232
  return response
180
233
 
234
+ def list_event_series(self, category=None, symbols=None, pagination_key=None):
235
+ """
236
+ Retrieve multiple series with specified filters.
237
+ A series represents a template for recurring events that follow the same format and rules.
238
+ This endpoint allows you to browse and discover available series templates by category.
239
+
240
+ :param category: The category which this series belongs to.Allowed values:
241
+ ECONOMICS, FINANCIALS, POLITICS, ENTERTAINMENT, SCIENCE_TECHNOLOGY,
242
+ CLIMATE_WEATHER, TRANSPORTATION, CRYPTO, SPORTS
243
+ :param symbols: Symbol of the event series, supports JSON array format, multiple symbols separated by commas; maximum 100 symbols per query.
244
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
245
+ """
246
+ event_series_request = GetEventSeriesRequestV2()
247
+ if category:
248
+ event_series_request.set_category(category)
249
+ if symbols:
250
+ event_series_request.set_symbols(symbols)
251
+ if pagination_key:
252
+ event_series_request.set_pagination_key(pagination_key)
253
+ response = self.client.get_response(event_series_request)
254
+ return response
255
+
181
256
  def get_event_events(self, series_symbol, symbols=None, status=None):
182
257
  """
183
258
  Query event contract events
@@ -197,13 +272,16 @@ class Instrument:
197
272
 
198
273
  def get_event_instrument(self, series_symbol, event_symbol=None, symbols=None, expiration_date_after=None, last_instrument_id=None, page_size=500):
199
274
  """
275
+ .. deprecated::
276
+ Use :meth:`list_event_instruments` instead.
277
+
200
278
  Retrieve profile information for event contract markets based on the series symbol.
201
279
 
202
280
  :param series_symbol: Symbol that identifies this series.
203
281
  :param event_symbol: Symbol of the event events.
204
282
  :param symbols: Symbol of the event market, supports JSON array format, multiple symbols separated by commas; maximum 100 symbols per query.
205
283
  :param expiration_date_after: Used to filter items whose expiration date is later than a specified date; the default selection is the current day (inclusive).
206
- :param last_instrument_id: Last instrument id for pagination.
284
+ :param last_instrument_id: Last series id for pagination.
207
285
  :param page_size: Page size, default 500.
208
286
  """
209
287
 
@@ -221,11 +299,40 @@ class Instrument:
221
299
  response = self.client.get_response(event_instrument_request)
222
300
  return response
223
301
 
302
+ def list_event_instruments(self, series_symbol=None, event_symbol=None, symbols=None, expiration_date_after=None,
303
+ pagination_key=None):
304
+ """
305
+ Retrieve profile information for event contract markets based on the series symbol.
306
+
307
+ :param series_symbol: Symbol that identifies this series.
308
+ :param event_symbol: Symbol of the event events.
309
+ :param symbols: Symbol of the event market, supports JSON array format, multiple symbols separated by commas; maximum 100 symbols per query.
310
+ :param expiration_date_after: Used to filter items whose expiration date is later than a specified date; the default selection is the current day (inclusive).
311
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
312
+ """
313
+
314
+ event_instrument_request = GetEventInstrumentRequestV2()
315
+ if series_symbol:
316
+ event_instrument_request.set_series_symbol(series_symbol)
317
+ if event_symbol:
318
+ event_instrument_request.set_event_symbol(event_symbol)
319
+ if symbols:
320
+ event_instrument_request.set_symbols(symbols)
321
+ if expiration_date_after:
322
+ event_instrument_request.set_expiration_date_after(expiration_date_after)
323
+ if pagination_key:
324
+ event_instrument_request.set_pagination_key(pagination_key)
325
+ response = self.client.get_response(event_instrument_request)
326
+ return response
327
+
224
328
  def get_option_contracts(self, category=Category.US_OPTION.name, underlying_symbols=None, status=None,
225
329
  start_date=None, end_date=None, root_symbol=None, option_symbol=None,
226
330
  option_type=None, style=None, strike_price_gte=None, strike_price_lte=None,
227
331
  ppind=None, show_deliverables=None, page_size=10, last_instrument_id=None):
228
332
  """
333
+ .. deprecated::
334
+ Use :meth:`list_option_contracts` instead.
335
+
229
336
  Query option contracts list by conditions such as underlying_symbols, status, expiration date, etc.
230
337
 
231
338
  :param category: Market category. Value: US_OPTION.
@@ -263,6 +370,46 @@ class Instrument:
263
370
  response = self.client.get_response(request)
264
371
  return response
265
372
 
373
+ def list_option_contracts(self, category=Category.US_OPTION.name, option_symbols=None, underlying_symbols=None,
374
+ status=None, start_date=None, end_date=None, root_symbol=None, option_type=None,
375
+ style=None, strike_price_gte=None, strike_price_lte=None, ppind=None,
376
+ show_deliverables=None, pagination_key=None):
377
+ """
378
+ Query option contracts list by conditions such as underlying_symbols, status, expiration date, etc.
379
+
380
+ :param category: Market category. Value: US_OPTION.
381
+ :param option_symbols: Option symbol(s), comma-separated for multiple, e.g. AAPL250620C00150000.
382
+ :param underlying_symbols: Underlying symbol(s), comma-separated for multiple, e.g. AAPL,MSFT.
383
+ :param status: Contract status: LISTING (default), DELISTING.
384
+ :param start_date: Exact expiration date, format YYYY-MM-DD.
385
+ :param end_date: Expiration date lower bound (inclusive), format YYYY-MM-DD.
386
+ :param root_symbol: Root symbol filter (series symbol, e.g. SPXW), mainly for index options and non-standard contracts after CA.
387
+ :param option_type: Contract type: CALL / PUT.
388
+ :param style: Exercise style: AMERICAN / EUROPEAN.
389
+ :param strike_price_gte: Strike price lower bound (inclusive).
390
+ :param strike_price_lte: Strike price upper bound (inclusive).
391
+ :param ppind: Penny Program Indicator: true = Penny Pilot, false = non-Penny Pilot.
392
+ :param show_deliverables: Whether to return deliverables array in response: true / false, default false.
393
+ :param pagination_key: Pagination key from the previous page response; not returned on the last page.
394
+ """
395
+ request = GetOptionContractsRequestV2()
396
+ request.set_category(category)
397
+ request.set_option_symbols(option_symbols)
398
+ request.set_underlying_symbols(underlying_symbols)
399
+ request.set_status(status)
400
+ request.set_start_date(start_date)
401
+ request.set_end_date(end_date)
402
+ request.set_root_symbol(root_symbol)
403
+ request.set_option_type(option_type)
404
+ request.set_style(style)
405
+ request.set_strike_price_gte(strike_price_gte)
406
+ request.set_strike_price_lte(strike_price_lte)
407
+ request.set_ppind(ppind)
408
+ request.set_show_deliverables(show_deliverables)
409
+ request.set_pagination_key(pagination_key)
410
+ response = self.client.get_response(request)
411
+ return response
412
+
266
413
  def get_company_profile(self, symbol, category=Category.US_STOCK.name):
267
414
  """
268
415
  Get company profile for one instrument.