Skip to content
Agent Orchestration
Skill

/alpha-vantage

Access 20+ years of global financial data: equities, options, forex, crypto, commodities, economic indicators, and 50+ technical indicators.

From plugin
sickn33-agentic-awesome-skills-2
49k200 skills

Claude Code

$ npx -y skills add sickn33/agentic-awesome-skills --skill alpha-vantage --agent claude-code

SKILL.md

alpha-vantage.SKILL.md
name: alpha-vantage
description: "Access 20+ years of global financial data: equities, options, forex, crypto, commodities, economic indicators, and 50+ technical indicators."
risk: critical
source: community
date_added: "2026-03-06"
metadata:
    skill-author: K-Dense Inc.

Alpha Vantage — Financial Market Data

Access 20+ years of global financial data: equities, options, forex, crypto, commodities, economic indicators, and 50+ technical indicators.

API Key Setup (Required)

1. Get a free key at https://www.alphavantage.co/support/#api-key (premium plans available for higher rate limits) 2. Set as environment variable:

read -rsp "Alpha Vantage API key: " ALPHAVANTAGE_API_KEY
echo
export ALPHAVANTAGE_API_KEY

Installation

uv pip install requests pandas

Base URL & Request Pattern

All requests go to:

https://www.alphavantage.co/query?function=FUNCTION_NAME&apikey=YOUR_KEY&...params
import requests
import os

API_KEY = os.environ.get("ALPHAVANTAGE_API_KEY")
BASE_URL = "https://www.alphavantage.co/query"

def av_get(function, **params):
    if not API_KEY:
        raise ValueError("Set ALPHAVANTAGE_API_KEY before requesting data")
    if "apikey" in params or "function" in params:
        raise ValueError("Reserved request parameters")
    try:
        response = requests.get(
            BASE_URL, params={**params, "function": function, "apikey": API_KEY},
            timeout=30,
        )
    except requests.RequestException:
        raise RuntimeError("Alpha Vantage transport failure; request URL redacted") from None
    # Avoid logging request URLs or raw HTTP exceptions: URLs contain the key.
    if not response.ok:
        raise RuntimeError(f"Alpha Vantage HTTP status {response.status_code}")
    try:
        data = response.json()
    except ValueError:
        raise RuntimeError("Alpha Vantage returned invalid JSON") from None
    if not isinstance(data, dict):
        raise RuntimeError("Alpha Vantage returned an unexpected response shape")
    if any(key in data for key in ("Error Message", "Note", "Information")):
        raise RuntimeError("API returned an error, quota, or entitlement message; inspect a redacted response")
    return data

Quick Start Examples

# Stock quote (latest price)
quote = av_get("GLOBAL_QUOTE", symbol="AAPL")
price = quote["Global Quote"]["05. price"]

# Daily OHLCV
daily = av_get("TIME_SERIES_DAILY", symbol="AAPL", outputsize="compact")
ts = daily["Time Series (Daily)"]

# Company fundamentals
overview = av_get("OVERVIEW", symbol="AAPL")
print(overview["MarketCapitalization"], overview["PERatio"])

# Income statement
income = av_get("INCOME_STATEMENT", symbol="AAPL")
annual = income["annualReports"][0]  # Most recent annual

# Crypto price
crypto = av_get("DIGITAL_CURRENCY_DAILY", symbol="BTC", market="USD")

# Economic indicator
gdp = av_get("REAL_GDP", interval="annual")

# Technical indicator
rsi = av_get("RSI", symbol="AAPL", interval="daily", time_period=14, series_type="close")

API Categories

| Category | Key Functions | |----------|--------------| | **Time Series (Stocks)** | GLOBAL_QUOTE, TIME_SERIES_INTRADAY, TIME_SERIES_DAILY, TIME_SERIES_WEEKLY, TIME_SERIES_MONTHLY | | **Options** | REALTIME_OPTIONS, HISTORICAL_OPTIONS | | **Alpha Intelligence** | NEWS_SENTIMENT, EARNINGS_CALL_TRANSCRIPT, TOP_GAINERS_LOSERS, INSIDER_TRANSACTIONS, ANALYTICS_FIXED_WINDOW | | **Fundamentals** | OVERVIEW, ETF_PROFILE, INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW, EARNINGS, DIVIDENDS, SPLITS | | **Forex (FX)** | CURRENCY_EXCHANGE_RATE, FX_INTRADAY, FX_DAILY, FX_WEEKLY, FX_MONTHLY | | **Crypto** | CURRENCY_EXCHANGE_RATE, CRYPTO_INTRADAY, DIGITAL_CURRENCY_DAILY | | **Commodities** | WTI (crude oil), BRENT, NATURAL_GAS, COPPER, WHEAT, CORN, COFFEE, ALL_COMMODITIES | | **Economic Indicators** | REAL_GDP, TREASURY_YIELD, FEDERAL_FUNDS_RATE, CPI, INFLATION, UNEMPLOYMENT, NONFARM_PAYROLL | | **Technical Indicators** | SMA, EMA, MACD, RSI, BBANDS, STOCH, ADX, ATR, OBV, VWAP, and 40+ more |

Common Parameters

| Parameter | Values | Notes | |-----------|--------|-------| | `outputsize` | `compact` / `full` | For applicable time-series endpoints; depth and entitlement vary | | `datatype` | `json` / `csv` | Default: json | | `interval` | `1min`, `5min`, `15min`, `30min`, `60min`, `daily`, `weekly`, `monthly` | Depends on endpoint | | `adjusted` | `true` / `false` | Adjust for splits/dividends |

Rate Limits

  • Free tier: 25 requests/day (as of 2026)
  • Premium plans: higher limits, real-time data, intraday access
  • Quota or entitlement messages may arrive in JSON even with HTTP 200; check `Note` and `Information` as well as HTTP status.
  • A short delay cannot satisfy a daily quota. Cache results, track the account request budget, and stop when exhausted. Verify current limits and endpoint entitlements in [official support](https://www.alphavantage.co/support/) and [API documentation](https://www.alphavantage.co/documentation/).

Error Handling

data = av_get("GLOBAL_QUOTE", symbol="AAPL")

# Check for API errors
if "Error Message" in data:
    raise ValueError(f"API Error: {data['Error Message']}")
if "Note" in data:
    print(f"Rate limit warning: {data['Note']}")
if "Information" in data:
    print(f"API info: {data['Information']}")

When to Use

Use this skill when tackling tasks related to its primary domain or functionality as described above.

Limitations

  • Quotes may be end-of-day or delayed depending on entitlement. Report timestamps and adjustment basis; market-data retrieval is not investment advice. API responses and empty reports need schema checks before indexing.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Read more
@sickn33
Ships withsickn33-agentic-awesome-skills-2

Find reusable instructions for your project, inspect their complete files, and keep an exact skill set you can review and reuse.

Stars on GitHub

Momentum

stars in total
48.9k
Star history of sickn33/agentic-awesome-skills on GitHub, a chart by star-history.com

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis10d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca10d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip10d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about alpha-vantage.

Which coding agents can use alpha-vantage?
alpha-vantage installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.