Alpaca Trade API Python (deprecated)
DEPRECATED. alpaca-trade-api (3.2.0) is the old Alpaca Python SDK — deprecated in 2022, no new features, no patches. The official replacement is 'alpaca-py' (pip install alpaca-py). LLMs heavily trained on alpaca-trade-api tutorials since it dominated for years. New projects must use alpaca-py. alpaca-trade-api still installs and partially works but uses the old v1/v2 API patterns.
Warnings
- breaking alpaca-trade-api deprecated 2022. No new features or bug fixes. Official replacement is 'alpaca-py' (pip install alpaca-py).
- breaking alpaca-py has completely different import structure. No more tradeapi.REST(). Separate clients for trading, market data, and streaming.
- gotcha Paper trading URL no longer needed explicitly. Pass paper=True to TradingClient instead of base_url='https://paper-api.alpaca.markets'.
- gotcha alpaca-py orders require typed request objects (MarketOrderRequest, LimitOrderRequest) — not plain dicts.
Install
-
pip install alpaca-py -
pip install alpaca-trade-api
Imports
- alpaca-py (replacement — recommended)
# pip install alpaca-py from alpaca.trading.client import TradingClient from alpaca.trading.requests import MarketOrderRequest from alpaca.trading.enums import OrderSide, TimeInForce client = TradingClient( api_key='YOUR_API_KEY', secret_key='YOUR_SECRET_KEY', paper=True # paper trading ) # Get account account = client.get_account() print(account.portfolio_value) # Place market order order_data = MarketOrderRequest( symbol='AAPL', qty=1, side=OrderSide.BUY, time_in_force=TimeInForce.DAY ) order = client.submit_order(order_data)
Quickstart
# pip install alpaca-py
from alpaca.trading.client import TradingClient
from alpaca.trading.requests import MarketOrderRequest, GetAssetsRequest
from alpaca.trading.enums import OrderSide, TimeInForce, AssetClass
from alpaca.data.historical import StockHistoricalDataClient
from alpaca.data.requests import StockBarsRequest
from alpaca.data.timeframe import TimeFrame
from datetime import datetime
# Trading client
trading = TradingClient(
api_key='YOUR_KEY',
secret_key='YOUR_SECRET',
paper=True # paper trading account
)
# Account info
account = trading.get_account()
print(f'Portfolio: ${account.portfolio_value}')
# Place order
order = trading.submit_order(MarketOrderRequest(
symbol='TSLA',
qty=1,
side=OrderSide.BUY,
time_in_force=TimeInForce.DAY
))
print(f'Order {order.id}: {order.status}')
# Historical data
data_client = StockHistoricalDataClient('YOUR_KEY', 'YOUR_SECRET')
bars = data_client.get_stock_bars(StockBarsRequest(
symbol_or_symbols='AAPL',
timeframe=TimeFrame.Day,
start=datetime(2024, 1, 1)
))
print(bars['AAPL'][-1].close)