-
-
Notifications
You must be signed in to change notification settings - Fork 185
Home
Provides Python API functionality for interacting with Webull (https://www.webull.com/). You are free to use this project, but the code is not extensively checked and Webull may update their APIs or endpoints at any time.
The APIs used by this project are not officially supported by Webull.
The APIs used by this project are not publicly documented, guaranteed to be backward-compatible, or guaranteed to be available for any amount of time. In other words, Webull may (and do) occasionally make changes on their server that will break the functionality of the code in this project. I use most of the endpoints supported by this project myself, so if major changes do come through I will make sure they work adequately.
The APIs used by this project were found by exploring addresses used by the Webull web application. You can explore by yourself for APIs that aren't available in this project yet. The simplest way to look for them is to open the "Inspector" or "Developer Tools" in your browser (Google Chrome, Microsoft Edge, etc) and search for the POST and GET requests in the "Network" tab that output the information you're looking for. Some information may be processed by JavaScript on client side (in your browser), so it is not always easy to find what you want.
How can I support the project?
How to use this package.
How to login and get account details (for more info see MFA & Security)
webull = webull()
webull.get_mfa('test@test.com')
webull.get_security('test@test.com')
webull.login('test@test.com', 'pa$$w0rd' , 'AnythingYouWant', 'mfa code', 'Security Question ID', 'Security Question Answer')
webull.get_account_id()
webull.get_trade_token('123456')
print(webull.get_account())
How to order stock
webull = webull()
webull.get_mfa('test@test.com')
webull.get_security('test@test.com')
webull.login('test@test.com', 'pa$$w0rd' , 'AnythingYouWant', 'mfa code', 'Security Question ID', 'Security Question Answer')
webull.get_account_id()
webull.get_trade_token('123456')
webull.place_order('NDAQ', 90.0, 2) //stock_ticker_symbol, price, quantity
How to check standing orders
webull = webull()
webull.get_mfa('test@test.com')
webull.get_security('test@test.com')
webull.login('test@test.com', 'pa$$w0rd' , 'AnythingYouWant', 'mfa code', 'Security Question ID', 'Security Question Answer')
webull.get_account_id()
webull.get_trade_token('123456')
orders = webull.get_current_orders()
for order in orders :
print(order)
How to cancel standing orders
webull = webull()
webull.get_mfa('test@test.com')
webull.get_security('test@test.com')
webull.login('test@test.com', 'pa$$w0rd' , 'AnythingYouWant', 'mfa code', 'Security Question ID', 'Security Question Answer')
webull.get_account_id()
webull.get_trade_token('123456')
orders = webull.get_current_orders()
for order in orders :
if order['statusCode'] == 'Working' :
webull.cancel_order(order['orderId'])
If you like the project and would like me to devote my time to it, you can support me here directly :
You can always help by contributing to the project directly with PR. Make sure that you don't upload your account credentials accidentally.
https://github.com/tedchou12/webull/wiki/For-Developers-Contributors