home / skills / openclaw / skills / alpaca
This skill helps you manage trades and monitor markets using Alpaca API, including quotes, orders, and portfolio data for paper or live trading.
npx playbooks add skill openclaw/skills --skill alpacaReview the files below or copy the command above to add this skill to your agents.
---
name: alpaca
description: Trade stocks and crypto via Alpaca API. Use for market data (quotes, bars, news), placing orders (market, limit, stop), checking positions, portfolio management, and account info. Supports both paper and live trading. Use when user asks about stock prices, wants to buy/sell securities, check portfolio, or manage trades.
---
# Alpaca Trading Skill
Trade stocks and crypto programmatically via Alpaca's API.
## Setup
Requires API credentials stored in environment or config:
```bash
# Set environment variables
export ALPACA_API_KEY="your-api-key"
export ALPACA_SECRET_KEY="your-secret-key"
export ALPACA_PAPER="true" # "true" for paper, "false" for live
```
Or store in `~/.openclaw/credentials/alpaca.json`:
```json
{
"apiKey": "your-api-key",
"secretKey": "your-secret-key",
"paper": true
}
```
## Quick Reference
### Get Quote
```bash
python3 scripts/alpaca_cli.py quote AAPL
python3 scripts/alpaca_cli.py quote AAPL,TSLA,NVDA
```
### Get Bars (Historical Data)
```bash
python3 scripts/alpaca_cli.py bars AAPL --timeframe 1Day --limit 10
python3 scripts/alpaca_cli.py bars AAPL --timeframe 1Hour --start 2026-02-01
```
### Check Account
```bash
python3 scripts/alpaca_cli.py account
```
### List Positions
```bash
python3 scripts/alpaca_cli.py positions
```
### Place Orders
```bash
# Market order
python3 scripts/alpaca_cli.py order buy AAPL 10
# Limit order
python3 scripts/alpaca_cli.py order buy AAPL 10 --limit 150.00
# Stop order
python3 scripts/alpaca_cli.py order sell TSLA 5 --stop 200.00
# Stop-limit order
python3 scripts/alpaca_cli.py order sell TSLA 5 --stop 200.00 --limit 195.00
# Skip price validation (use with caution)
python3 scripts/alpaca_cli.py order buy AAPL 10 --limit 999.00 --force
```
**Order Guardrails:**
1. **Symbol validation** — Rejects invalid/unknown tickers
2. **Buying power check** — Blocks orders exceeding available funds, shows max shares
3. **Duplicate detection** — Warns if you have open orders for same symbol/side
4. **Price validation** — Warns if limit price is worse than market
5. **Market hours check** — Detects pre-market, after-hours, and closed sessions
- Pre-market (4:00 AM - 9:30 AM ET): Option to place pre-market order
- After-hours (4:00 PM - 8:00 PM ET): Option to place after-hours order
- Closed: Warns order will queue until market open
6. **Cost confirmation** — Shows total cost and requires confirmation
Use `--force` to skip all confirmation prompts (use with caution).
### List Orders
```bash
python3 scripts/alpaca_cli.py orders
python3 scripts/alpaca_cli.py orders --status open
python3 scripts/alpaca_cli.py orders --status closed --limit 20
```
### Cancel Order
```bash
python3 scripts/alpaca_cli.py cancel ORDER_ID
python3 scripts/alpaca_cli.py cancel all # Cancel all open orders
```
### Get News
```bash
python3 scripts/alpaca_cli.py news AAPL
python3 scripts/alpaca_cli.py news AAPL,TSLA --limit 5
```
### Watchlist
```bash
python3 scripts/alpaca_cli.py watchlist list
python3 scripts/alpaca_cli.py watchlist create "Tech Stocks" AAPL,MSFT,GOOGL
python3 scripts/alpaca_cli.py watchlist add WATCHLIST_ID NVDA
python3 scripts/alpaca_cli.py watchlist delete WATCHLIST_ID
```
### Stream Live Data (Websocket)
```bash
# Stream trades (default)
python3 scripts/alpaca_cli.py stream AAPL
# Stream quotes
python3 scripts/alpaca_cli.py stream AAPL,TSLA --type quotes
# Stream bars (1-min)
python3 scripts/alpaca_cli.py stream NVDA --type bars
# Stream all data types
python3 scripts/alpaca_cli.py stream AAPL --type all
```
Press Ctrl+C to stop streaming.
### Price Alerts
```bash
# Add alert - notify when INTU drops below $399
python3 scripts/alpaca_cli.py alert add --symbol INTU --price 399 --condition below
# Add alert - notify when AAPL goes above $300
python3 scripts/alpaca_cli.py alert add --symbol AAPL --price 300 --condition above
# List active alerts
python3 scripts/alpaca_cli.py alert list
# Check alerts (used by cron)
python3 scripts/alpaca_cli.py alert check
# Remove an alert
python3 scripts/alpaca_cli.py alert remove --alert_id ABC123
# Clear all alerts
python3 scripts/alpaca_cli.py alert clear
```
Alerts are stored in `~/.openclaw/data/alpaca-alerts.json`.
## Script Location
All commands use: `scripts/alpaca_cli.py` (relative to this skill directory)
## API Reference
See `references/api.md` for detailed API documentation and response formats.
## Safety Notes
- Always confirm with user before placing real trades
- Paper trading (`ALPACA_PAPER=true`) recommended for testing
- Check buying power before large orders
- Verify order details before submission
This skill lets you trade stocks and crypto programmatically via the Alpaca API. It supports market data (quotes, bars, news), order placement (market, limit, stop, stop-limit), portfolio and position checks, and both paper and live trading. The skill includes safety guardrails and a CLI for common workflows.
The skill reads Alpaca API credentials from environment variables or a local credentials file and uses the Alpaca REST and streaming APIs to fetch market data, place and manage orders, and stream live updates. A command-line interface exposes quote, bars, account, positions, orders, watchlist, alerts, and streaming capabilities. Built-in validations inspect symbols, buying power, duplicate orders, price sanity, and market session state before submitting trades.
How do I provide API credentials?
Set ALPACA_API_KEY and ALPACA_SECRET_KEY as environment variables or place credentials in ~/.openclaw/credentials/alpaca.json.
Can I test without risking real money?
Yes. Enable paper trading by setting ALPACA_PAPER=true in your environment or credentials to use Alpaca's paper environment.