d1am0nd / alpha-vantage
Simplified Laravel Alpha Vantage API client
Installs: 2 960
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 2
Forks: 6
Open Issues: 4
Requires
- php: ^7.0
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-10-27 18:37:16 UTC
README
This is a Laravel package for simplified fetching of finance data from Alpha Vantage API. It's an abstraction layer over Guzzle that aims to remove complexity in connecting it to Alpha Vantage API.
Docs
Demo
Getting historical data
// Daily historical data for Bitcoin to USD $res = \AlphaVantage\Api::digitalCurrency()->daily('BTC', 'USD'); /* Returns [ "Meta Data": [ "1. Information": "Daily Prices and Volumes for Digital Currency", ... ], "Time Series (Digital Currency Daily)": [ "2018-01-03": [ "1a. open (USD)": "14782.09572045", ... ], "2018-01-02": [ "1a. open (USD)": "13514.39967186", ... ], ... ], ] */
Installation
- Run composer
composer require d1am0nd/alpha-vantage
- Add your Alpha Vantage API key to .env as
AV_KEY={your key}
Usage
API calls are grouped into 5 different groups:
Api::stock()
- Stock Time SeriesApi::currency()
- Foreign ExchangeApi::digitalCurrency()
- Digital & Crypto CurrenciesApi::sector()
- Sector PerformancesApi::general()
- Technical Indicators & Other
Each function described below is called from their respective group as shown in examples.
Functions described below also take an additional parameter array $params = []
, which can be used to pass any optional parameters if needed.
Stock Time Series
Documented - https://www.alphavantage.co/documentation/#currency-exchange
Example - Microsoft's historical monthly stock data
use AlphaVantage\Api; // ... public function monthlyData() { return Api::stock()->monthly('MSFT'); }
Methods available
intraday($symbol)
- https://www.alphavantage.co/documentation/#intradaydaily($symbol)
- https://www.alphavantage.co/documentation/#dailydailyAdjusted($symbol)
- https://www.alphavantage.co/documentation/#dailyadjweekly($symbol)
- https://www.alphavantage.co/documentation/#weeklyweeklyAdjusted($symbol)
- https://www.alphavantage.co/documentation/#weeklyadjmonthly($symbol)
- https://www.alphavantage.co/documentation/#monthlymonthlyAdjusted($symbol)
- https://www.alphavantage.co/documentation/#monthlyadjbatchStockQuotes(array $symbols)
- https://www.alphavantage.co/documentation/#batchquotesquote($symbol)
- https://www.alphavantage.co/documentation/#latestpricesearch($keywords)
- https://www.alphavantage.co/documentation/#symbolsearch
Foreign Exchange
Documented - https://www.alphavantage.co/documentation/#currency-exchange
Example - Euro to US Dollar
use AlphaVantage\Api; // ... public function currencyExchangeRate() { return Api::currency()->currencyExchangeRate('EUR', 'USD'); }
Methods available
currencyExchangeRate($from, $to)
- https://www.alphavantage.co/documentation/#currency-exchangeintraday($from, $to, $interval)
- https://www.alphavantage.co/documentation/#fx-intradaydaily($from, $to)
- https://www.alphavantage.co/documentation/#fx-dailyweekly($from, $to)
- https://www.alphavantage.co/documentation/#fx-weeklymonthly($from, $to)
- https://www.alphavantage.co/documentation/#fx-monthly
Digital & Crypto Currencies
Documented - https://www.alphavantage.co/documentation/#digital-currency
Example - Bitcoin historical monthly stock data
use AlphaVantage\Api; // ... public function monthlyData() { return Api::digitalCurrency()->monthly('BTC', 'USD'); }
Methods available
intraday($symbol, $market)
- https://www.alphavantage.co/documentation/#currency-intradaydaily($symbol, $market)
- https://www.alphavantage.co/documentation/#currency-dailyweekly($symbol, $market)
- https://www.alphavantage.co/documentation/#currency-weeklymonthly($symbol, $market)
- https://www.alphavantage.co/documentation/#currency-monthly
Sector Performances
Documented - https://www.alphavantage.co/documentation/#sector-information
Example - Sector peformances
use AlphaVantage\Api; // ... public function sectorPerformances() { return Api::sector()->sectors(); }
Methods available
Technical Indicators & Other
Documented - https://www.alphavantage.co/documentation/#technical-indicators
Technical methods are not implemented as separate functions. There is a Api::general()->query($funcName, array $params)
method which allows for custom queries.
Example - MACDEXT
This will query function 'MACDEXT' with additional parameters symbol
, interval
and series_type
as described in the documentation https://www.alphavantage.co/documentation/#macdext
use AlphaVantage\Api; // ... public function technicalIndicators() { return Api::general()->query('MACDEXT', [ 'symbol' => 'MSFT', 'interval' => '15min', 'series_type' => 'high', ]); }
Methods available
query($functionName, array $parameters)
License
This project is licensed under the MIT License - see the LICENSE.md file for details