This is an unofficial API for Public.com. It is a simple Python wrapper around the Public.com requests API. It is not affiliated with Public.com in any way. Use at your own risk.
This is still a very work in progress, so it will have bugs and missing features. Feel free to contribute!
pip install public-invest-api
from public_invest_api import Public
public = Public()
public.login(
username='your_email',
password='your_password',
wait_for_2fa=True # When logging in for the first time, you need to wait for the SMS code
)
If you'd like to handle the 2FA code yourself, set wait_for_2fa=False
and it will throw an Exception relating to 2FA. Catch this, then when you get the 2FA code, call it again with the code:
public.login(
username='your_email',
password='your_password',
wait_for_2fa=False,
code='your_2fa_code' # Should be six digit integer
)
positions = public.get_positions()
for position in positions:
print(position)
order = public.place_order(
symbol='AAPL',
quantity=1,
side='BUY', # or 'SELL'
order_type='MARKET', # or 'LIMIT' or 'STOP'
limit_price=None # pass float if using 'LIMIT' order_type
time_in_force='DAY', # or 'GTC' or 'IOC' or 'FOK'
is_dry_run=False, # If True, it will not actually place the order
tip=0 # The amount to tip Public.com
)
print(order)
Found or fixed a bug? Have a feature request? Feel free to open an issue or pull request!
Enjoying the project? Feel free to Sponsor me on GitHub or Ko-fi!
DISCLAIMER: I am not a financial advisor and not affiliated with Public.com. Use this tool at your own risk. I am not responsible for any losses or damages you may incur by using this project. This tool is provided as-is with no warranty.