Skip to content

Workaround for Login ‐ Method 1

Jason E Rush edited this page Nov 17, 2023 · 1 revision

I have noticed that Webull is making the security a lot more difficult with the Security Question added lately (2021 Jan) in addition to the original MFA requirement. If you cannot login, there is one way to work around the login issue by directly getting the token:

  1. Visit https://app.webull.com/.
  2. Open Chrome in Incognito mode, open "Inspector", go to "Network"
  3. You can find your Access Token and Refresh Token like the screenshot below:

The format should look something like this:

{"extInfo":{"userPwdFlag":"1","equipmentCheck":"success"},"accessToken":"dc_us1.188awefa4-00000000000000000000000000000000","uuid":"165dbaa7333aeawf312151ar1f1dc804b9b","refreshToken":"188a0awef2444-00000000000000000000000000000000","tokenExpireTime":"2021-02-14T13:35:35.780+0000","firstTimeOfThird":false,"registerAddress":169,"settings":{"id":94551253056757760,"userId":300431177,"regionId":169,"language":"en","focusMarketId":"2,3,4,5,6,14","theme":2,"increDecreColor":2,"fontSize":"M","portfolioDisplayMode":2,"portfolioNameNewline":1,"portfolioHoldingsDisplay":1,"portfolioIndexDisplay":1,"portfolioBulletin":1,"kdata":1,"refreshFrequency":1,"shock":0,"tickerPriceRemind":1,"orderDealRemind":1,"hotNews":1,"chartOption":2,"operateTime":"1969-12-31T00:00:00.000+0000","languageUpdateTime":"1970-01-01T00:00:00.000+0000","createTime":"2018-09-15T05:18:25.000+0000","updateTime":"2018-09-15T05:18:25.000+0000"}}

Save as webull_credentials.json file.

fh = open('webull_credentials.json', 'r')
credential_data = json.load(fh)
fh.close()

wb._refresh_token = credential_data['refreshToken']
wb._access_token = credential_data['accessToken']
wb._token_expire = credential_data['tokenExpireTime']
wb._uuid = credential_data['uuid']

n_data = wb.refresh_login()

credential_data['refreshToken'] = n_data['refreshToken']
credential_data['accessToken'] = n_data['accessToken']
credential_data['tokenExpireTime'] = n_data['tokenExpireTime']

file = open('webull_credentials.json', 'w')
json.dump(credential_data, file)
file.close()

# important to get the account_id
wb.get_account_id()

# your code here;

Since my Email and Skype is flooding in with Login requests, I would very much like to help everyone, but this is taking more time than I hope to allocate. If you would like special support, feel free to contact me, but please do appreciate my time through here:

Thank you.