Skip to content
Finance
Skill

/alpaca-data

Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.

BOOST
From plugin
gauss314-skills
25032 skills
Install
$ npx -y skills add gauss314/skills --skill alpaca-data --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/alpaca-data

Context preview

The summary Claude sees to decide when to auto-load this skill.

Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.

SKILL.md

alpaca-data.SKILL.md
name: alpaca-data
description: "Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks."
license: MIT

Alpaca Data — Market Data API

API de datos de mercado con datos históricos y en tiempo real para acciones, crypto y opciones.

**Base URL:** `https://data.alpaca.markets` **SDK:** `pip install alpaca-py` **Docs:** [docs.alpaca.markets](https://docs.alpaca.markets/us/docs/about-market-data-api)

---

Autenticación

Obtener API Keys

1. Ir a [app.alpaca.markets](https://app.alpaca.markets) 2. Crear cuenta (paper trading es gratis) 3. Ir a "API Keys" → Generate New Keys 4. Guardar **API Key** y **Secret Key**

Configuración

import os
from alpaca.data.historical import StockHistoricalDataClient

# Keys (requerido para datos de acciones)
API_KEY = os.getenv("APCA_API_KEY_ID")
SECRET_KEY = os.getenv("APCA_API_SECRET_KEY")

client = StockHistoricalDataClient(API_KEY, SECRET_KEY)

# Crypto NO requiere keys
from alpaca.data.historical import CryptoHistoricalDataClient
crypto_client = CryptoHistoricalDataClient()

**⚠️ NUNCA hardcodear keys en código que se comparte.**

---

Rate Limits

| Plan | Requests/Min | Datos | |------|-------------|-------| | **Free (IEX)** | 200 | ~5 años historia, 1 exchange | | **Paid (SIP)** | Mayor | Todas las bolsas US, ~7 años |

Recomendaciones

  • **Cachear datos** — los datos históricos no cambian
  • **Batch requests** — pedir múltiples símbolos en una llamada
  • **Usar `limit=10000`** — máximo por request
  • **Paginar con `next_page_token`** — para datos grandes

---

Data Feeds

| Feed | Descripción | Costo | |------|-------------|-------| | `iex` | Investors Exchange (~2.5% del volumen) | Gratis | | `sip` | Todas las bolsas US (consolidado) | Paid | | `boats` | Blue Ocean ATS (horas extendidas) | Paid | | `otc` | Over-the-counter | Paid |

**Free tier = solo IEX**

---

Historical Stock Data

Bars (OHLCV)

from alpaca.data.requests import StockBarsRequest
from alpaca.data.timeframe import TimeFrame
from datetime import datetime

request = StockBarsRequest(
    symbol_or_symbols=["AAPL", "GOOGL"],
    timeframe=TimeFrame.Day,
    start=datetime(2023, 1, 1),
    end=datetime(2024, 12, 31),
    feed="iex"  # free tier
)

bars = client.get_stock_bars(request)
df = bars.df  # DataFrame

**TimeFrames disponibles:**

  • `TimeFrame.Minute` / `TimeFrame(5, TimeFrame.Minute)`
  • `TimeFrame.Hour`
  • `TimeFrame.Day`
  • `TimeFrame.Week`
  • `TimeFrame.Month`

Quotes (Bid/Ask)

from alpaca.data.requests import StockQuotesRequest

request = StockQuotesRequest(
    symbol_or_symbols=["AAPL"],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31),
    feed="iex"
)

quotes = client.get_stock_quotes(request)

Trades

from alpaca.data.requests import StockTradesRequest

request = StockTradesRequest(
    symbol_or_symbols=["AAPL"],
    start=datetime(2024, 1, 1),
    feed="iex"
)

trades = client.get_stock_trades(request)

Latest Data

# Latest bar
bars = client.get_stock_latest_bar(["AAPL", "GOOGL"])

# Latest quote
quotes = client.get_stock_latest_quote(["AAPL"])

# Latest trade
trades = client.get_stock_latest_trade(["AAPL"])

Snapshots

from alpaca.data.requests import SnapshotRequest

request = SnapshotRequest(
    symbol_or_symbols=["AAPL", "GOOGL"]
)
snapshots = client.get_snapshot(request)

---

Historical Crypto Data

**No requiere API keys**

from alpaca.data.historical import CryptoHistoricalDataClient
from alpaca.data.requests import CryptoBarsRequest
from alpaca.data.timeframe import TimeFrame
from datetime import datetime

client = CryptoHistoricalDataClient()

request = CryptoBarsRequest(
    symbol_or_symbols=["BTC/USD", "ETH/USD"],
    timeframe=TimeFrame.Day,
    start=datetime(2023, 1, 1),
    end=datetime(2024, 12, 31)
)

bars = client.get_crypto_bars(request)
df = bars.df

Crypto Orderbook

from alpaca.data.requests import CryptoLatestQuoteRequest

request = CryptoLatestQuoteRequest(symbol_or_symbols=["BTC/USD"])
quotes = client.get_crypto_latest_quote(request)

---

Historical Options Data

Option Chains

# Obtener contratos disponibles
from alpaca.data.requests import OptionContractsRequest

request = OptionContractsRequest(
    underlying_symbols=["AAPL"],
    expiration_date_gte="2024-01-01",  # desde esta fecha
    expiration_date_lte="2024-12-31",  # hasta esta fecha
    strike_price_gte=100,  # strikes mínimo
    strike_price_lte=200   # strikes máximo
)

contracts = client.get_option_contracts(request)

Option Bars/Trades/Quotes

from alpaca.data.requests import OptionBarsRequest

# Buscar contract ID primero
contract_id = "6e58f870-fe73-4583-81e4-b9a37892c36f"

request = OptionBarsRequest(
    symbol_or_contract_ids=[contract_id],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31)
)

bars = client.get_option_bars(request)

---

Options Tickers Reference

Ver [./references/options_reference.md](./references/options_reference.md) para:

  • Símbolos de opciones (AAPL240119C00100000)
  • Parámetros de filtrado
  • Trading levels requeridos

---

News

from alpaca.data.requests import StockNewsRequest

request = StockNewsRequest(
    symbol_or_symbols=["AAPL", "GOOGL"],
    start=datetime(2024, 1, 1),
    end=datetime(2024, 1, 31)
)

news = client.get_stock_news(request)

---

Screener

from alpaca.data.requests import MostActivesRequest

request = MostActivesRequest(
    by="volume",  # volume, share, number
    top=10,
    date="2024-01-15"
)

movers = client.get_most_actives(request)

---

WebSocket Real-Time (Opcional)

from alpaca.data.stream import StockDataStream

ws = StockDataStream(API_KEY, SECRET_KEY)

async def handle_bar(bar):
    print(bar)

ws.subscribe_bars(handle_bar, "AAPL", "GOOGL")
ws.run()

---

Scripts de Descarga

Read more
Ships withgauss314-skills

Open-source collection of skills compatible with the SKILL.md standard. Developed for the AI courses at UCEMA.

Get the whole plugin
Stats
250
Stars
35
Forks
Maintained
Maintenance
Python
Language
MIT
License
4mo ago
Last commit
4mo ago
Created
5h ago
Added

Repo: gauss314/skills

Other skills on gauss314-skills.