webull-openapi-python-sdk 2.0.12__py3-none-any.whl → 2.0.13__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.
samples/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.0.12'
1
+ __version__ = '2.0.13'
@@ -0,0 +1,59 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # coding=utf-8
16
+
17
+ from webull.core.client import ApiClient
18
+ from webull.trade.trade_client import TradeClient
19
+
20
+ optional_api_endpoint = "<api_endpoint>"
21
+ your_app_key = "<your_app_key>"
22
+ your_app_secret = "<your_app_secret>"
23
+ region_id = "<region_id>"
24
+ account_id = "<your_account_id>"
25
+
26
+ api_client = ApiClient(your_app_key, your_app_secret, region_id)
27
+ api_client.add_endpoint(region_id, optional_api_endpoint)
28
+
29
+ if __name__ == '__main__':
30
+ trade_client = TradeClient(api_client)
31
+
32
+ # Query cash activities with default parameters
33
+ res = trade_client.activity.get_activities(account_id)
34
+ if res.status_code == 200:
35
+ print('get activities:', res.json())
36
+
37
+ # Query cash activities with activity type filter
38
+ res = trade_client.activity.get_activities(account_id, activity_types="TRADE,DEPOSIT")
39
+ if res.status_code == 200:
40
+ print('get activities by type:', res.json())
41
+
42
+ # Query cash activities with time range filter
43
+ res = trade_client.activity.get_activities(
44
+ account_id,
45
+ start_time="2026-06-30T12:00:00.000Z",
46
+ end_time="2026-07-03T12:00:00.000Z",
47
+ page_size=20
48
+ )
49
+ if res.status_code == 200:
50
+ print('get activities by time range:', res.json())
51
+
52
+ # Query cash activities with cursor-based pagination
53
+ res = trade_client.activity.get_activities(
54
+ account_id,
55
+ last_activity_id="<last_activity_id_from_previous_page>",
56
+ page_size=10
57
+ )
58
+ if res.status_code == 200:
59
+ print('get activities next page:', res.json())
webull/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.0.12'
1
+ __version__ = '2.0.13'
webull/core/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = '2.0.12'
1
+ __version__ = '2.0.13'
2
2
 
3
3
  import logging
4
4
 
webull/data/__init__.py CHANGED
@@ -1,3 +1,3 @@
1
1
  # coding=utf-8
2
2
 
3
- __version__ = '2.0.12'
3
+ __version__ = '2.0.13'
webull/trade/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.0.12'
1
+ __version__ = '2.0.13'
@@ -0,0 +1,39 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # coding=utf-8
16
+ from webull.core.request import ApiRequest
17
+
18
+
19
+ class GetActivitiesRequest(ApiRequest):
20
+ def __init__(self):
21
+ ApiRequest.__init__(self, "/openapi/trade/activities/cash", version='v2', method="GET", query_params={})
22
+
23
+ def set_account_id(self, account_id):
24
+ self.add_query_param("account_id", account_id)
25
+
26
+ def set_activity_types(self, activity_types):
27
+ self.add_query_param("activity_types", activity_types)
28
+
29
+ def set_start_time(self, start_time):
30
+ self.add_query_param("start_time", start_time)
31
+
32
+ def set_end_time(self, end_time):
33
+ self.add_query_param("end_time", end_time)
34
+
35
+ def set_last_activity_id(self, last_activity_id):
36
+ self.add_query_param("last_activity_id", last_activity_id)
37
+
38
+ def set_page_size(self, page_size):
39
+ self.add_query_param("page_size", page_size)
@@ -0,0 +1,49 @@
1
+ # Copyright 2022 Webull
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # coding=utf-8
16
+
17
+ from webull.trade.request.get_activities_request import GetActivitiesRequest
18
+
19
+
20
+ class Activity:
21
+ def __init__(self, api_client):
22
+ self.client = api_client
23
+
24
+ def get_activities(self, account_id, activity_types=None, start_time=None, end_time=None,
25
+ last_activity_id=None, page_size=10):
26
+ """
27
+ Query cash activities by type with pagination support.
28
+ This interface is currently supported only for Webull US.
29
+
30
+ :param account_id: Account ID
31
+ :param activity_types: Activity types filter, comma-separated string (optional)
32
+ :param start_time: Start time filter (optional)
33
+ :param end_time: End time filter (optional)
34
+ :param last_activity_id: The last activity ID of the previous page for cursor-based pagination (optional)
35
+ :param page_size: Number of entries per page, default value is 10
36
+ """
37
+ get_activities_request = GetActivitiesRequest()
38
+ get_activities_request.set_account_id(account_id)
39
+ if activity_types is not None:
40
+ get_activities_request.set_activity_types(activity_types)
41
+ if start_time is not None:
42
+ get_activities_request.set_start_time(start_time)
43
+ if end_time is not None:
44
+ get_activities_request.set_end_time(end_time)
45
+ if last_activity_id is not None:
46
+ get_activities_request.set_last_activity_id(last_activity_id)
47
+ get_activities_request.set_page_size(page_size)
48
+ response = self.client.get_response(get_activities_request)
49
+ return response
@@ -16,6 +16,7 @@ import sys
16
16
 
17
17
  from webull.core.http.initializer.client_initializer import ClientInitializer
18
18
  from webull.trade.trade.account_info import Account
19
+ from webull.trade.trade.activity import Activity
19
20
  from webull.trade.trade.order_operation import OrderOperation
20
21
  from webull.trade.trade.trade_calendar import TradeCalendar
21
22
  from webull.trade.trade.trade_instrument import TradeInstrument
@@ -33,6 +34,7 @@ class TradeClient:
33
34
  self.order = OrderOperation(api_client)
34
35
  self.order_v2 = OrderOperationV2(api_client)
35
36
  self.order_v3 = OrderOperationV3(api_client)
37
+ self.activity = Activity(api_client)
36
38
  self.trade_instrument = TradeInstrument(api_client)
37
39
  self.trade_calendar = TradeCalendar(api_client)
38
40
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webull-openapi-python-sdk
3
- Version: 2.0.12
3
+ Version: 2.0.13
4
4
  Summary: Webull Python SDK.
5
5
  Home-page:
6
6
  Author: Webull
@@ -1,4 +1,4 @@
1
- samples/__init__.py,sha256=RRwLT6p4EVy1Jtdz4OMtNbu7xEdpC4gTRQ0zWltm1MQ,23
1
+ samples/__init__.py,sha256=F9oasgdSO040QuU150cChv-xopNDOmPbPvzmyDiEYjM,23
2
2
  samples/account/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
3
3
  samples/account/account_client.py,sha256=vwh-nI_JnjwcIeOr1sQPMzG8pAqZwliUusE49ZmYE3s,1796
4
4
  samples/assets/__init__.py,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
@@ -15,6 +15,7 @@ samples/order/order_stock_client.py,sha256=hYwVwVFVERk-YS7gRcW-LuGfAvcF8VJHZs1qw
15
15
  samples/screener/__init__.py,sha256=68et0-FOloDo6Yo6vqmHPM45z-8zorzbhrZmUrLApEQ,583
16
16
  samples/screener/screener_client.py,sha256=NGwjY7YaG_3l9c-QePpmpPG4Gtk_BZaM7-jQbMb2kzw,3636
17
17
  samples/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ samples/trade/activities_client.py,sha256=HOF0-T_-v9Am3Raob-iq2IM4PetfhQWbRw2rkMaufzk,2093
18
19
  samples/trade/trade_client.py,sha256=LyWSvZJH4ByCkRORqP9WdkXfx65A2b6fhc9_GzL8DOM,6258
19
20
  samples/trade/trade_client_v2.py,sha256=IO-zmRiUnCmIetTdiYunPh8jVK2VaPrOR77Dwvz1auY,10771
20
21
  samples/trade/trade_client_v3.py,sha256=yAkVwWhZBGD929oMmlUj4GvJVWWZiV8PLlv_BeXbDZ8,32069
@@ -22,8 +23,8 @@ samples/trade/trade_client_v3_event.py,sha256=91HlT04KlK8Q5gUnsB8F5ErCFdJRnpDABK
22
23
  samples/trade/trade_event_client.py,sha256=BWdD1L41LXmDlaig6ku9T3t3fSCCZEdj5nxH1xI1AZA,2653
23
24
  samples/watchlist/__init__.py,sha256=rtV5s4_CJgDAT4DGEJa_pNLJU71Wdr5OLz_IQ1EajFQ,567
24
25
  samples/watchlist/watchlist_client.py,sha256=lpzJs7SXuSka2KKkJ0u9s83A9iHta5qrjvIdkbfNcwg,3246
25
- webull/__init__.py,sha256=RRwLT6p4EVy1Jtdz4OMtNbu7xEdpC4gTRQ0zWltm1MQ,23
26
- webull/core/__init__.py,sha256=7GjyCroCZNfqvAsrpXggx5gEix62mf-KiQnxescdKPE,226
26
+ webull/__init__.py,sha256=F9oasgdSO040QuU150cChv-xopNDOmPbPvzmyDiEYjM,23
27
+ webull/core/__init__.py,sha256=Qhu2u_ECRyTmwLpFqEvg3uf4DNpsW3CQr6STtRrF6eo,226
27
28
  webull/core/client.py,sha256=zxSBiII9KDxc5tHpTerJfV_PKPt8E9e3oTOpiakAtJw,16758
28
29
  webull/core/compat.py,sha256=_r6Y_f3vTo_DoxOaCvLjnvOo1KRkD2Z9kXSh8OijEIA,3088
29
30
  webull/core/headers.py,sha256=Wj2zev1XYyYsy2b9YKnoK3GqjVsXZO_o2WziMmuVBTw,2061
@@ -89,7 +90,7 @@ webull/core/utils/common.py,sha256=T5VVcYQVhA9fhiUHZN9gBuoh0uzVgbCM01o1qK08NAE,2
89
90
  webull/core/utils/data.py,sha256=YUyoWY68_2RkKanh3jsDscgGx__FIPh5VNEGXr1Qotc,852
90
91
  webull/core/utils/desensitize.py,sha256=f8_ps9BrG3WfXD8ZAw873-_YoGeke1Q55CeDwRmYkqA,1104
91
92
  webull/core/utils/validation.py,sha256=gJcIrHYtgo48yVJ0q6O-f5buTYWOcr6ShhDIBhTp-Yg,1957
92
- webull/data/__init__.py,sha256=tdVEX3AOmd6xefuH0MbcmWzpkGJBiPH9YyyjUbQm2Dw,39
93
+ webull/data/__init__.py,sha256=A1ewcdVQ2-bAKc0T1HpPB3BsNC-a_6o-DRL8CcYULZE,39
93
94
  webull/data/data_client.py,sha256=FzatKHXgu5xv-FKFaX-mFYdhLTdz7zpRUox9AGWrReQ,2429
94
95
  webull/data/data_streaming_client.py,sha256=TQBAilvOLCbcMqacByrniXGr9VjSwjym-4-LUOiqKx8,4456
95
96
  webull/data/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -217,8 +218,8 @@ webull/data/request/watchlist/get_watchlist_request.py,sha256=XxzS4gxFbdQSajpFSm
217
218
  webull/data/request/watchlist/remove_watchlist_instruments_request.py,sha256=qOtQYDBp-PSawAgljnLmtfUce8dAblWI_zB0nnIv3G0,1451
218
219
  webull/data/request/watchlist/update_watchlist_instruments_request.py,sha256=KoihfB8MszsAooQGUUMjFmnid_a7xk4YSdEMDO1gh-k,1493
219
220
  webull/data/request/watchlist/update_watchlist_request.py,sha256=0s3ftkxiz9hjtXhLORrIUphyDIldRA8pJ4mP5zfbsyU,1466
220
- webull/trade/__init__.py,sha256=Ast7uVPztIC3X6Smxn3jnx9xmlIl0IpX3UNDj0m_wTQ,22
221
- webull/trade/trade_client.py,sha256=_6lH4KO-jKgKWU28fWNsc9-KEHto-WvaP0gT96BJ_dw,2184
221
+ webull/trade/__init__.py,sha256=ETOzoBNhLSJycFTTlQ9F3NIdUYtPhNYYTm7erVExyfg,22
222
+ webull/trade/trade_client.py,sha256=ck8yRjm-aibv8LGOP0Gk5zg6bv4-bTVjULFpZlCAK2c,2278
222
223
  webull/trade/trade_events_client.py,sha256=G9ovuxrnQh8iA1so2Ar-41jWRzDCYQYSHTkQLGlwhhA,9983
223
224
  webull/trade/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
224
225
  webull/trade/common/account_type.py,sha256=haVAB33MERN6XyPsbrfVQhK9_CpU90VltI6_KDkxzlE,715
@@ -249,6 +250,7 @@ webull/trade/request/cancel_order_request.py,sha256=JbyeVNOVu9xvwzba7Ntw2Sh4BrNV
249
250
  webull/trade/request/get_account_balance_request.py,sha256=S9M1rz6HFlIwRpWfkQKVfRo996_DWF8Qe6bGirSnkV0,1042
250
251
  webull/trade/request/get_account_positions_request.py,sha256=Nr7fyzsZfcCqQlyapu7KagZEagM60IG7PFU9Qempv9w,1117
251
252
  webull/trade/request/get_account_profile_request.py,sha256=SgF-eDkL6XM3IC-I-Mqmi8lFrTPa0iM4CkTjkZwZx_U,899
253
+ webull/trade/request/get_activities_request.py,sha256=yp8ZiUM0mKyiIeBgBJHiokUSoF6zwAuqKdy0QnAtqa8,1421
252
254
  webull/trade/request/get_app_subscriptions.py,sha256=ViITk9Tt164LceijAq0harcO_5eoTRyCDnFsvr-ZJ4Y,962
253
255
  webull/trade/request/get_open_orders_request.py,sha256=USAN2LKVtJ0CK-lJlLQ8ihhM5M78du5rYoD2lMAV85g,1129
254
256
  webull/trade/request/get_order_detail_request.py,sha256=X42LnDBBh1shJ5DFB31ukgS8u1l-JM-Z2kumJnbutfw,1008
@@ -291,6 +293,7 @@ webull/trade/request/v3/preview_order_request.py,sha256=ZgzwrlAed8IJ8ORDRjJ7rIuF
291
293
  webull/trade/request/v3/replace_order_request.py,sha256=Xsa-vKGTMAwv-dJuSm8cx8rHVoFhk-cFjnHOpsUaZwM,1212
292
294
  webull/trade/trade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
295
  webull/trade/trade/account_info.py,sha256=C3YcBDZfYOe5QSJEbysblye-W90RbQ7xNing5gLsIng,3622
296
+ webull/trade/trade/activity.py,sha256=pyvsJcMhyKoKdxurJPgXexsoUy6EefwKneqqSJpdA0U,2154
294
297
  webull/trade/trade/order_operation.py,sha256=QrL4Da87RTOSupiAbuXtZigo9602Byp14DQGyR99hkI,12849
295
298
  webull/trade/trade/trade_calendar.py,sha256=rGSiR5GZggQnZOmmpbC-06trgPQgFTvdpUzGMpw2ycw,1415
296
299
  webull/trade/trade/trade_instrument.py,sha256=293IaiLnhw0mAc1IuF3LSgwgve_XZ1Dyf1VeFtmClc8,3474
@@ -299,9 +302,9 @@ webull/trade/trade/v2/account_info_v2.py,sha256=fs2-XaxklItuhaspzPkthXA5SgbnIffL
299
302
  webull/trade/trade/v2/order_operation_v2.py,sha256=m54RH2j45CBBWEnqe4KxrsltAF44XKtPMT4kv8t7djQ,12745
300
303
  webull/trade/trade/v3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
304
  webull/trade/trade/v3/order_opration_v3.py,sha256=NsInXC5sPCW8y55jU71BnR0sQYhtWclqCmyK7V09MLc,8275
302
- webull_openapi_python_sdk-2.0.12.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
303
- webull_openapi_python_sdk-2.0.12.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
304
- webull_openapi_python_sdk-2.0.12.dist-info/METADATA,sha256=suQHI55MCoTax2Gh12BxlA2z1aQ0NvxDiHzvWEs-UCc,1033
305
- webull_openapi_python_sdk-2.0.12.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
306
- webull_openapi_python_sdk-2.0.12.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
307
- webull_openapi_python_sdk-2.0.12.dist-info/RECORD,,
305
+ webull_openapi_python_sdk-2.0.13.dist-info/licenses/LICENSE,sha256=ALOnsLtb1aHxmDJg3-oMi0BO-i-cjfyZaOBfnnavKMc,11359
306
+ webull_openapi_python_sdk-2.0.13.dist-info/licenses/NOTICE,sha256=X5TApte6CPV10b96Cb70IRLusXmiRmK_R-dB-1tQM_I,2018
307
+ webull_openapi_python_sdk-2.0.13.dist-info/METADATA,sha256=ax-GvRxzowuykj36heNhXVhnd8J9ttaF6Hg6lZmqj6M,1033
308
+ webull_openapi_python_sdk-2.0.13.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
309
+ webull_openapi_python_sdk-2.0.13.dist-info/top_level.txt,sha256=h8pEjNDGWS2ZUZ2vYFpUShoMQT0ZRIQaD57QJWD8_aI,15
310
+ webull_openapi_python_sdk-2.0.13.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (82.0.1)
2
+ Generator: setuptools (83.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5