{"id":188,"library":"alpaca-trade-api","title":"Alpaca Trade API Python (deprecated)","description":"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.","status":"deprecated","version":"3.2.0","language":"python","source_language":"en","source_url":"https://github.com/alpacahq/alpaca-trade-api-python","tags":["alpaca","trading","stocks","python","deprecated","fintech"],"install":[{"cmd":"pip install alpaca-py","lang":"bash","label":"Python (use this — official replacement)"},{"cmd":"pip install alpaca-trade-api","lang":"bash","label":"Python (deprecated — do not use for new projects)"}],"dependencies":[],"imports":[{"note":"alpaca-trade-api deprecated 2022. No new features or patches. Import pattern changed — new SDK has separate clients: TradingClient, StockHistoricalDataClient, StockDataStream.","wrong":"# Deprecated — do not use for new projects\nimport alpaca_trade_api as tradeapi\n\napi = tradeapi.REST(\n    key_id='YOUR_API_KEY',\n    secret_key='YOUR_SECRET_KEY',\n    base_url='https://paper-api.alpaca.markets'\n)\naccount = api.get_account()","symbol":"alpaca-py (replacement — recommended)","correct":"# pip install alpaca-py\nfrom alpaca.trading.client import TradingClient\nfrom alpaca.trading.requests import MarketOrderRequest\nfrom alpaca.trading.enums import OrderSide, TimeInForce\n\nclient = TradingClient(\n    api_key='YOUR_API_KEY',\n    secret_key='YOUR_SECRET_KEY',\n    paper=True  # paper trading\n)\n\n# Get account\naccount = client.get_account()\nprint(account.portfolio_value)\n\n# Place market order\norder_data = MarketOrderRequest(\n    symbol='AAPL',\n    qty=1,\n    side=OrderSide.BUY,\n    time_in_force=TimeInForce.DAY\n)\norder = client.submit_order(order_data)"}],"quickstart":{"code":"# pip install alpaca-py\nfrom alpaca.trading.client import TradingClient\nfrom alpaca.trading.requests import MarketOrderRequest, GetAssetsRequest\nfrom alpaca.trading.enums import OrderSide, TimeInForce, AssetClass\nfrom alpaca.data.historical import StockHistoricalDataClient\nfrom alpaca.data.requests import StockBarsRequest\nfrom alpaca.data.timeframe import TimeFrame\nfrom datetime import datetime\n\n# Trading client\ntrading = TradingClient(\n    api_key='YOUR_KEY',\n    secret_key='YOUR_SECRET',\n    paper=True  # paper trading account\n)\n\n# Account info\naccount = trading.get_account()\nprint(f'Portfolio: ${account.portfolio_value}')\n\n# Place order\norder = trading.submit_order(MarketOrderRequest(\n    symbol='TSLA',\n    qty=1,\n    side=OrderSide.BUY,\n    time_in_force=TimeInForce.DAY\n))\nprint(f'Order {order.id}: {order.status}')\n\n# Historical data\ndata_client = StockHistoricalDataClient('YOUR_KEY', 'YOUR_SECRET')\nbars = data_client.get_stock_bars(StockBarsRequest(\n    symbol_or_symbols='AAPL',\n    timeframe=TimeFrame.Day,\n    start=datetime(2024, 1, 1)\n))\nprint(bars['AAPL'][-1].close)","lang":"python","description":"alpaca-py (replacement for alpaca-trade-api) — trading and market data."},"warnings":[{"fix":"pip install alpaca-py; from alpaca.trading.client import TradingClient","message":"alpaca-trade-api deprecated 2022. No new features or bug fixes. Official replacement is 'alpaca-py' (pip install alpaca-py).","severity":"breaking","affected_versions":"all"},{"fix":"TradingClient for orders/account. StockHistoricalDataClient for historical data. StockDataStream for live data.","message":"alpaca-py has completely different import structure. No more tradeapi.REST(). Separate clients for trading, market data, and streaming.","severity":"breaking","affected_versions":"all"},{"fix":"TradingClient(api_key=..., secret_key=..., paper=True)","message":"Paper trading URL no longer needed explicitly. Pass paper=True to TradingClient instead of base_url='https://paper-api.alpaca.markets'.","severity":"gotcha","affected_versions":"alpaca-py"},{"fix":"from alpaca.trading.requests import MarketOrderRequest; trading.submit_order(MarketOrderRequest(...))","message":"alpaca-py orders require typed request objects (MarketOrderRequest, LimitOrderRequest) — not plain dicts.","severity":"gotcha","affected_versions":"alpaca-py"},{"fix":"Ensure you are using valid API Key ID and Secret Key for your Alpaca account. Double-check environment variables or the `api_key` and `secret_key` parameters passed directly to `TradingClient`.","message":"API calls result in 'Unauthorized' (HTTP 401) if API Key ID or Secret Key are incorrect or missing when initializing `TradingClient`. This typically manifests as an `APIError: {\"message\": \"unauthorized.\"}` exception.","severity":"gotcha","affected_versions":"alpaca-py"},{"fix":"pip install pytz","message":"The `alpaca-py` library, particularly modules like `alpaca.data`, may implicitly depend on `pytz`, which is not always automatically installed as a direct dependency during `pip install alpaca-py`.","severity":"gotcha","affected_versions":"alpaca-py"}],"env_vars":null,"last_verified":"2026-05-12T09:52:12.422Z","next_check":"2026-06-25T00:00:00.000Z","problems":[{"fix":"Install the module using 'pip install alpaca-trade-api'.","cause":"The 'alpaca_trade_api' module is not installed or not found in the Python environment.","error":"ModuleNotFoundError: No module named 'alpaca_trade_api'"},{"fix":"Ensure that the asset being accessed is supported by Alpaca, such as US stocks, ETFs, or cryptocurrencies.","cause":"Attempting to access an unsupported asset class, such as currency pairs like 'USD/JPY', which are not available on Alpaca.","error":"alpaca_trade_api.rest.APIError: endpoint not found"},{"fix":"Adjust the limit price to ensure the increment is at least 0.1.","cause":"Submitting a limit order with a price increment less than the minimum allowed (0.1).","error":"alpaca_trade_api.rest.APIError: limit price increment must be > 0.1"},{"fix":"Verify the account status and ensure it is active and authorized for trading.","cause":"The account is not permitted to submit orders, possibly due to trading being disabled or the account not being in an active trading state.","error":"alpaca_trade_api.rest.APIError: account is not authorized to trade"},{"fix":"Contact Alpaca support to understand the restriction and request the removal of the liquidation-only status if appropriate.","cause":"The account is set to liquidation-only mode, allowing only the closing of existing positions.","error":"alpaca_trade_api.rest.APIError: account is restricted to liquidation only"}],"ecosystem":"pypi","meta_description":null,"install_score":80,"install_tag":"verified","quickstart_score":0,"quickstart_tag":"stale","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"269.1M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"183.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"329M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"177M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"285.9M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"198.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"345M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"192M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"268.7M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"181.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"328M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"175M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"264.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"177.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"326M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"171M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"277.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"191.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"341M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"188M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"stale","tag_description":"widespread failures or data too old to trust","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}