CLI
May 30, 2026 ยท View on GitHub
The package includes a command-line interface for quick lookups and scripts:
npx yahoo-finance2 --help
npx yahoo-finance2 search AMZN
npx yahoo-finance2 quoteSummary GOOGL
npx yahoo-finance2 quoteSummary NVDA '{"modules":["assetProfile", "secFilings"]}'
npx yahoo-finance2 quote '["AAPL", "MSFT"]' '{"return":"object"}'
If installed globally, use the yahoo-finance binary:
npm install -g yahoo-finance2
yahoo-finance search MSFT
Arguments that start with { or [ are parsed as JSON, so module options and
array arguments can be passed directly from the shell.
Stdin Input
Use --stdin to read a single module call as JSON from stdin. The most general
form mirrors the JavaScript method call:
npx yahoo-finance2 --stdin <<'JSON'
{
"module": "quoteSummary",
"args": [
"AAPL",
{ "modules": ["assetProfile", "secFilings"] },
{ "validateResult": false, "validateOptions": true }
]
}
JSON
When the module is supplied on the command line, stdin may use the convenience shape:
npx yahoo-finance2 quoteSummary --stdin <<'JSON'
{
"query": "AAPL",
"queryOptions": {
"modules": ["assetProfile", "secFilings"]
},
"moduleOptions": {
"validateResult": false
}
}
JSON
--stdin cannot be combined with positional module arguments. Put the complete
argument list in the stdin JSON instead:
npx yahoo-finance2 quote --stdin <<'JSON'
{
"args": [
["AAPL", "MSFT"],
{ "return": "map" }
]
}
JSON
Output Streams
The CLI is intended to be safe for scripting:
- Successful module results are written to stdout.
--helpand--versionare written to stdout.- Errors, warnings, and validation diagnostics are written to stderr.
When stdout is a terminal, successful results are printed in a human-readable form. When stdout is piped or redirected, successful results are JSON:
npx yahoo-finance2 quote AAPL | jq '.regularMarketPrice'
For JSON output, CLI results are normalized to JSON-safe values. For example, a
Map result such as quote with { "return": "map" } is written as a plain
JSON object keyed by symbol.
Exit Codes
The CLI uses these exit codes:
0for successful module calls,--help, and--version.2for usage errors, including missing modules, unknown modules, malformed JSON arguments, invalid options, and wrong argument shapes.1for runtime failures, including Yahoo, network, HTTP, validation-result, and unexpected errors.
Example:
set +e
result=$(npx yahoo-finance2 search AAPL 2>error.log)
status=$?
set -e
case "$status" in
0) printf '%s\n' "$result" ;;
2) printf 'Usage error:\n%s\n' "$(cat error.log)" >&2 ;;
*) printf 'Runtime error:\n%s\n' "$(cat error.log)" >&2 ;;
esac