We use the Yahoo API to gather real-time stock data.
Make sure you have Go
installed on your machine.
You can check by running the following command in the console
go version
If you don't have Go
installed, you can Download Go and install it.
Run the following command in the console
, in the project directory
, to install the library with go get
go get github.com/ggoodwin/go-stocks
Add the import to your .go
file
import stocks "github.com/ggoodwin/go-stocks"
Add this to your .go
file
// Parameter: Stock Symbol
// Returns: strings ex: `$123.45`, `1.23%`, `β`
price, percent, direction := stocks.GetPriceAndPercentage("AAPL")
// Parameter: Stock Symbol
// Returns `Result` struct
stock := stocks.GetFullDetails("AAPL")
type Result struct {
Symbol string `json:"symbol"`
ShortName string `json:"shortName"`
QuoteSourceName string `json:"quoteSourceName"`
Language string `json:"language"`
Region string `json:"region"`
QuoteType string `json:"quoteType"`
Triggerable bool `json:"triggerable"`
Currency string `json:"currency"`
Exchange string `json:"exchange"`
MessageBoardID string `json:"messageBoardId"`
ExchangeTimezoneName string `json:"exchangeTimezoneName"`
ExchangeTimezoneShortName string `json:"exchangeTimezoneShortName"`
GmtOffSetMilliseconds int `json:"gmtOffSetMilliseconds"`
Market string `json:"market"`
EsgPopulated bool `json:"esgPopulated"`
FirstTradeDateMilliseconds int64 `json:"firstTradeDateMilliseconds"`
RegularMarketChange float64 `json:"regularMarketChange"`
RegularMarketChangePercent float64 `json:"regularMarketChangePercent"`
RegularMarketTime int `json:"regularMarketTime"`
RegularMarketPrice float64 `json:"regularMarketPrice"`
RegularMarketDayHigh float64 `json:"regularMarketDayHigh"`
RegularMarketDayRange string `json:"regularMarketDayRange"`
RegularMarketDayLow float64 `json:"regularMarketDayLow"`
RegularMarketVolume int64 `json:"regularMarketVolume"`
RegularMarketPreviousClose float64 `json:"regularMarketPreviousClose"`
FullExchangeName string `json:"fullExchangeName"`
RegularMarketOpen float64 `json:"regularMarketOpen"`
AverageDailyVolume3Month int64 `json:"averageDailyVolume3Month"`
AverageDailyVolume10Day int64 `json:"averageDailyVolume10Day"`
StartDate int `json:"startDate"`
CoinImageURL string `json:"coinImageUrl"`
FiftyTwoWeekLowChange float64 `json:"fiftyTwoWeekLowChange"`
FiftyTwoWeekLowChangePercent float64 `json:"fiftyTwoWeekLowChangePercent"`
FiftyTwoWeekRange string `json:"fiftyTwoWeekRange"`
FiftyTwoWeekHighChange float64 `json:"fiftyTwoWeekHighChange"`
FiftyTwoWeekHighChangePercent float64 `json:"fiftyTwoWeekHighChangePercent"`
FiftyTwoWeekLow float64 `json:"fiftyTwoWeekLow"`
FiftyTwoWeekHigh float64 `json:"fiftyTwoWeekHigh"`
FiftyDayAverage float64 `json:"fiftyDayAverage"`
FiftyDayAverageChange float64 `json:"fiftyDayAverageChange"`
FiftyDayAverageChangePercent float64 `json:"fiftyDayAverageChangePercent"`
TwoHundredDayAverage float64 `json:"twoHundredDayAverage"`
TwoHundredDayAverageChange float64 `json:"twoHundredDayAverageChange"`
TwoHundredDayAverageChangePercent float64 `json:"twoHundredDayAverageChangePercent"`
MarketCap int64 `json:"marketCap"`
SourceInterval int `json:"sourceInterval"`
ExchangeDataDelayedBy int `json:"exchangeDataDelayedBy"`
Tradeable bool `json:"tradeable"`
MarketState string `json:"marketState"`
}
If you find an issue with this library, please report the issue using our Github Issues or check out the Security details if it is security related.
If you'd like, I welcome any contributions. Please read the Contributing document then Fork this library and submit a Pull Request. Make sure to click compare across forks
to see your fork.
This project is under the MIT License. See the License file for the full license text.
Check out our Changelog
Please read my Code of Conduct before contributing or engaging in discussions.