node-yahoo-finance2
Community API for Yahoo-Finance.
Copyright (c) 2021 by Gadi Cohen <dragon@wastelands.net>. MIT licensed.
Supports Node 12.0.0 and up (tests are run against 12.0.0).
Beta release. Please let us know of any issues or edge cases.
If you're looking for something stable and battle-tested, use the
current
node-yahoo-finance.
Live Demo on CodeSandbox
Unofficial API
This project is neither created nor endorsed by Yahoo Inc. Yahoo does not
provide any official API to developers, nor makes any guarantees regarding
service availability or API consistency. In practice however, the open
source community has kept this project (and it's predecessor) working well
since 2013.
Nevertheless, we make no guarantees and you use this package at your own risk.
The developers (and obviously Yahoo) cannot be held responsible for any losses
you may incur as a result of using this service. Use of this package is
considered acknowledgement and acceptance of these terms and of it's license.
Quickstart
CLI (Command line interface)
$ npx yahoo-finance2 search AAPL
$ npm install -g yahoo-finance2
$ yahoo-finance search AAPL '{ "someOption": true }'
Importing
import yahooFinance from 'yahoo-finance2';
const results = await yahooFinance.search('AAPL');
const results = await yahooFInance.search('AAPL', { someOption: true, etc });
Available modules:
autoc
,
historical
,
quoteSummary
(submodules:
assetProfile, balanceSheetHistory, balanceSheetHistoryQuarterly,
calendarEvents, cashflowStatementHistory, cashflowStatementHistoryQuarterly,
defaultKeyStatistics, earnings, earningsHistory, earningsTrend, financialData,
fundOwnership, fundPerformance, fundProfile, incomeStatementHistory,
incomeStatementHistoryQuarterly, indexTrend, industryTrend, insiderHolders
insiderTransactions, institutionOwnership, majorDirectHolders,
majorHoldersBreakdown, netSharePurchaseActivity, price, quoteType,
recommendationTrend, secFilings, sectorTrend, summaryDetail, summaryProfile,
symbol, topHoldings, upgradeDowngradeHistory),
search
, with more
coming soon.
See the Full Documentation.
(Optional) TypeScript Love
Working with yahoo-finance2
is a joy if you're using TypeScript (but you
don't have to), with type checking and auto completion:
Try it yourself on our
Live CodeSandbox.
Devel Mode
In "devel" mode, any URL will only be fetched once and cached in memory
and on the disk. All future requests (for the rest of time) will return the
cached result. This is very helpful to speed up development and is used
extensively for our tests.
await search('AAPL', {}, { devel: true });
await search('AAPL', {}, { devel: 'search-AAPL.json' });
Note: require('yahooFinanceFetchDevel')
is called conditionally when
devel: true
. It also uses packages from devDependencies
. As such,
deployment to production is not supported.
Contributing
Pull Requests welcome! Please read CONTRIBUTING.md
to avoid friction :) Mostly importantly, PRs should be submitted against
the devel branch (our default branch) and commit messages should follow
the conventionalcommits standard
(basically Angular). This is important as we use
semantic-release
to automate releases and CHANGELOG entries when we merge
back to master.
Credits
- Massive thanks to @pilwon for the original
node-yahoo-finance
and for all our prior collaborations on this and other projects 🙏