alphavantage-api

安装量: 58
排名: #12865

安装

npx skills add https://github.com/adaptationio/skrillz --skill alphavantage-api

Alpha Vantage API Integration Financial data API providing stocks, forex, crypto, technical indicators, fundamental data, economic indicators, and AI-powered news sentiment analysis. Quick Start Authentication

Environment variable (recommended)

export ALPHAVANTAGE_API_KEY = "your_api_key"

Or in .env file

ALPHAVANTAGE_API_KEY

your_api_key Basic Usage (Python) import requests import os API_KEY = os . getenv ( "ALPHAVANTAGE_API_KEY" ) BASE_URL = "https://www.alphavantage.co/query" def get_quote ( symbol : str ) -

dict : """Get real-time quote for a symbol.""" response = requests . get ( BASE_URL , params = { "function" : "GLOBAL_QUOTE" , "symbol" : symbol , "apikey" : API_KEY } ) return response . json ( ) . get ( "Global Quote" , { } )

Example

quote

get_quote ( "AAPL" ) print ( f"AAPL: $ { quote [ '05. price' ] } ( { quote [ '10. change percent' ] } )" ) Using Python Package from alpha_vantage . timeseries import TimeSeries from alpha_vantage . techindicators import TechIndicators

Time series data

ts

TimeSeries ( key = API_KEY , output_format = 'pandas' ) data , meta = ts . get_daily ( symbol = 'AAPL' , outputsize = 'compact' )

Technical indicators

ti

TechIndicators ( key = API_KEY , output_format = 'pandas' ) rsi , meta = ti . get_rsi ( symbol = 'AAPL' , interval = 'daily' , time_period = 14 ) API Functions Reference Stock Time Series Function Description Free TIME_SERIES_INTRADAY 1-60min intervals ✅ TIME_SERIES_DAILY Daily OHLCV ✅ TIME_SERIES_DAILY_ADJUSTED With splits/dividends ⚠️ Premium TIME_SERIES_WEEKLY Weekly OHLCV ✅ TIME_SERIES_MONTHLY Monthly OHLCV ✅ GLOBAL_QUOTE Latest quote ✅ SYMBOL_SEARCH Search symbols ✅ Fundamental Data Function Description Free OVERVIEW Company overview ✅ INCOME_STATEMENT Income statements ✅ BALANCE_SHEET Balance sheets ✅ CASH_FLOW Cash flow statements ✅ EARNINGS Earnings history ✅ EARNINGS_CALENDAR Upcoming earnings ✅ IPO_CALENDAR Upcoming IPOs ✅ Forex Function Description Free CURRENCY_EXCHANGE_RATE Real-time rate ✅ FX_INTRADAY Intraday forex ✅ FX_DAILY Daily forex ✅ FX_WEEKLY Weekly forex ✅ FX_MONTHLY Monthly forex ✅ Cryptocurrency Function Description Free CURRENCY_EXCHANGE_RATE Crypto rate ✅ DIGITAL_CURRENCY_DAILY Daily crypto ✅ DIGITAL_CURRENCY_WEEKLY Weekly crypto ✅ DIGITAL_CURRENCY_MONTHLY Monthly crypto ✅ Technical Indicators (50+) Category Indicators Trend SMA, EMA, WMA, DEMA, TEMA, KAMA, MAMA, T3, TRIMA Momentum RSI, MACD, STOCH, WILLR, ADX, CCI, MFI, ROC, AROON, MOM Volatility BBANDS, ATR, NATR, TRANGE Volume OBV, AD, ADOSC Hilbert HT_TRENDLINE, HT_SINE, HT_PHASOR, etc. Economic Indicators Function Description Free REAL_GDP US GDP ✅ CPI Consumer Price Index ✅ INFLATION Inflation rate ✅ UNEMPLOYMENT Unemployment rate ✅ FEDERAL_FUNDS_RATE Fed funds rate ✅ TREASURY_YIELD Treasury yields ✅ Alpha Intelligence Function Description Free NEWS_SENTIMENT AI sentiment analysis ✅ TOP_GAINERS_LOSERS Market movers ✅ INSIDER_TRANSACTIONS Insider trades ⚠️ Premium ANALYTICS_FIXED_WINDOW Analytics ⚠️ Premium Rate Limits Tier Daily Per Minute Price Free 25 5 $0 Premium Unlimited 75-1,200 $49.99-$249.99/mo Important: Rate limits are IP-based, not key-based. Common Tasks Task: Get Daily Stock Data def get_daily_data ( symbol : str , full : bool = False ) -

dict : """Get daily OHLCV data.""" response = requests . get ( BASE_URL , params = { "function" : "TIME_SERIES_DAILY" , "symbol" : symbol , "outputsize" : "full" if full else "compact" , "apikey" : API_KEY } ) return response . json ( ) . get ( "Time Series (Daily)" , { } )

Example

data

get_daily_data
(
"AAPL"
)
latest
=
list
(
data
.
items
(
)
)
[
0
]
print
(
f"
{
latest
[
0
]
}
Close $ { latest [ 1 ] [ '4. close' ] } " ) Task: Get Technical Indicator def get_rsi ( symbol : str , period : int = 14 ) -

dict : """Get RSI indicator values.""" response = requests . get ( BASE_URL , params = { "function" : "RSI" , "symbol" : symbol , "interval" : "daily" , "time_period" : period , "series_type" : "close" , "apikey" : API_KEY } ) return response . json ( ) . get ( "Technical Analysis: RSI" , { } )

Example

rsi

get_rsi ( "AAPL" ) latest_rsi = list ( rsi . values ( ) ) [ 0 ] [ "RSI" ] print ( f"AAPL RSI(14): { latest_rsi } " ) Task: Get Company Overview def get_company_overview ( symbol : str ) -

dict : """Get comprehensive company information.""" response = requests . get ( BASE_URL , params = { "function" : "OVERVIEW" , "symbol" : symbol , "apikey" : API_KEY } ) data = response . json ( ) return { "name" : data . get ( "Name" ) , "description" : data . get ( "Description" ) , "sector" : data . get ( "Sector" ) , "industry" : data . get ( "Industry" ) , "market_cap" : data . get ( "MarketCapitalization" ) , "pe_ratio" : data . get ( "PERatio" ) , "dividend_yield" : data . get ( "DividendYield" ) , "eps" : data . get ( "EPS" ) , "52_week_high" : data . get ( "52WeekHigh" ) , "52_week_low" : data . get ( "52WeekLow" ) , "beta" : data . get ( "Beta" ) } Task: Get Forex Rate def get_forex_rate ( from_currency : str , to_currency : str ) -

dict : """Get currency exchange rate.""" response = requests . get ( BASE_URL , params = { "function" : "CURRENCY_EXCHANGE_RATE" , "from_currency" : from_currency , "to_currency" : to_currency , "apikey" : API_KEY } ) return response . json ( ) . get ( "Realtime Currency Exchange Rate" , { } )

Example

rate

get_forex_rate ( "USD" , "EUR" ) print ( f"USD/EUR: { rate [ '5. Exchange Rate' ] } " ) Task: Get Crypto Price def get_crypto_price ( symbol : str , market : str = "USD" ) -

dict : """Get cryptocurrency price.""" response = requests . get ( BASE_URL , params = { "function" : "CURRENCY_EXCHANGE_RATE" , "from_currency" : symbol , "to_currency" : market , "apikey" : API_KEY } ) data = response . json ( ) . get ( "Realtime Currency Exchange Rate" , { } ) return { "symbol" : symbol , "price" : data . get ( "5. Exchange Rate" ) , "last_updated" : data . get ( "6. Last Refreshed" ) }

Example

btc

get_crypto_price ( "BTC" ) print ( f"BTC: $ { float ( btc [ 'price' ] ) : ,.2f } " ) Task: Get News Sentiment def get_news_sentiment ( tickers : str = None , topics : str = None ) -

list : """Get AI-powered news sentiment analysis.""" params = { "function" : "NEWS_SENTIMENT" , "apikey" : API_KEY } if tickers : params [ "tickers" ] = tickers if topics : params [ "topics" ] = topics response = requests . get ( BASE_URL , params = params ) return response . json ( ) . get ( "feed" , [ ] )

Example

news

get_news_sentiment ( tickers = "AAPL" ) for article in news [ : 3 ] : sentiment = article . get ( "overall_sentiment_label" , "N/A" ) print ( f" { article [ 'title' ] [ : 50] } ... [ { sentiment } ]" ) Task: Get Economic Indicators def get_economic_indicator ( indicator : str ) -

dict : """Get US economic indicator data.""" response = requests . get ( BASE_URL , params = { "function" : indicator , "apikey" : API_KEY } ) return response . json ( )

Examples

gdp

get_economic_indicator ( "REAL_GDP" ) cpi = get_economic_indicator ( "CPI" ) unemployment = get_economic_indicator ( "UNEMPLOYMENT" ) fed_rate = get_economic_indicator ( "FEDERAL_FUNDS_RATE" ) Task: Get Earnings Calendar def get_earnings_calendar ( horizon : str = "3month" ) -

list : """Get upcoming earnings releases.""" import csv from io import StringIO response = requests . get ( BASE_URL , params = { "function" : "EARNINGS_CALENDAR" , "horizon" : horizon ,

3month, 6month, 12month

"apikey" : API_KEY } )

Returns CSV format

reader

csv . DictReader ( StringIO ( response . text ) ) return list ( reader )

Example

earnings

get_earnings_calendar ( ) for e in earnings [ : 5 ] : print ( f" { e [ 'symbol' ] } : { e [ 'reportDate' ] } " ) Error Handling def safe_api_call ( params : dict ) -

dict : """Make API call with error handling.""" params [ "apikey" ] = API_KEY try : response = requests . get ( BASE_URL , params = params ) data = response . json ( )

Check for rate limit

if "Note" in data : print ( f"Rate limit: { data [ 'Note' ] } " ) return { }

Check for error message

if "Error Message" in data : print ( f"API Error: { data [ 'Error Message' ] } " ) return { }

Check for information message (often rate limit)

if "Information" in data : print ( f"Info: { data [ 'Information' ] } " ) return { } return data except Exception as e : print ( f"Request error: { e } " ) return { } Free vs Premium Features Free Tier Includes 25 requests per day 5 requests per minute Historical time series (20+ years) 50+ technical indicators Fundamental data Forex and crypto Economic indicators News sentiment Premium Required Unlimited daily requests Adjusted time series Realtime US market data 15-minute delayed data Insider transactions Advanced analytics Priority support Best Practices Cache responses - Data doesn't change frequently Use compact outputsize - Unless you need full history Batch requests wisely - 25/day limit is strict Handle rate limits - Check for "Note" key in response Use pandas output - With alpha_vantage package Store historical data - Avoid re-fetching same data Installation

Official Python wrapper

pip install alpha_vantage pandas

For async support

pip install aiohttp Usage with Pandas from alpha_vantage . timeseries import TimeSeries from alpha_vantage . techindicators import TechIndicators import pandas as pd

Initialize with pandas output

ts

TimeSeries ( key = API_KEY , output_format = 'pandas' ) ti = TechIndicators ( key = API_KEY , output_format = 'pandas' )

Get daily data

data , meta = ts . get_daily ( symbol = 'AAPL' , outputsize = 'compact' )

Get indicators

sma , _ = ti . get_sma ( symbol = 'AAPL' , interval = 'daily' , time_period = 20 ) rsi , _ = ti . get_rsi ( symbol = 'AAPL' , interval = 'daily' , time_period = 14 )

Combine

analysis

data . join ( [ sma , rsi ] )

返回排行榜