IEX Finance API
A Ruby client for the IEX Finance API.
Installation
Add to Gemfile.
gem 'iex-ruby-client'
Run bundle install.
Usage
Get a Single Price
Fetches a single number, being the IEX real time price, the 15 minute delayed market price, or the previous close price.
IEX::Resources::Price.get('MSFT') # 93.78
See #price for detailed documentation.
Get a Quote
Fetches a single stock quote.
quote = IEX::Resources::Quote.get('MSFT')
quote.latest_price # 90.165
quote.change # 0.375
quote.change_percent # 0.00418
quote.change_percent_s # '+0.42%'
See #quote for detailed documentation or quote.rb for returned fields.
Get a OHLC (Open, High, Low, Close) price
Fetches a single stock OHLC price. Open and Close prices contain timestamp.
ohlc = IEX::Resources::OHLC.get('MSFT')
ohlc.close.price # 90.165
ohlc.close.time #
ohlc.open.price # 0.375
ohlc.open.time
ohlc.high # 0.00418
ohlc.low # '+0.42%'
Get a market OHLC (Open, High, Low, Close) prices
Fetches a hash market OHLC prices.
market = IEX::Resources::OHLC.market
market['SPY'].close.price # 278.56
market['SPY'].close.time # 2018-06-11 23:00:00 +0300
market['SPY'].open.price # 279.05
market['SPY'].open.time # 2018-06-12 16:30:00 +0300
market['SPY'].high #
market['SPY'].low #
Get Company Information
Fetches company information for a symbol.
company = IEX::Resources::Company.get('MSFT')
company.ceo # 'Satya Nadella'
company.company_name # 'Microsoft Corporation'
See #company for detailed documentation or company.rb for returned fields.
Get Company Logo
Fetches company logo for a symbol.
logo = IEX::Resources::Logo.get('MSFT')
logo.url # 'https://storage.googleapis.com/iex/api/logos/MSFT.png'
See #logo for detailed documentation or logo.rb for returned fields.
Get Recent News
Fetches news for a symbol.
news = IEX::Resources::News.get('MSFT')
news.size # 10
latest = news.first
latest.headline # 'Smartsheet files for $100M IPO with growing losses'
latest.url # 'https://...'
Use market to get market-wide news.
news = IEX::Resources::News.get(:market)
Retrieve a range between 1 and 50.
news = IEX::Resources::News.get('MSFT', 5)
See #news for detailed documentation or news.rb for returned fields.
Get Chart
Fetches charts for a symbol.
chart = IEX::Resources::Chart.get('MSFT')
chart.size # 38510
first = chart.first
first.label # '9:30 AM'
first.high # 94.97
You can specify a chart range and additional options.
# 1d or 1m data depending on the day or week and time of day
IEX::Resources::Chart.get('MSFT', 'dynamic')
# a specific date
IEX::Resources::Chart.get('MSFT', Date.new(2018, 3, 26))
# every n-th data point
IEX::Resources::Chart.get('MSFT', '1d', chart_interval: 10)
See #chart for detailed documentation or chart/default and chart/one_day for returned fields.
Errors
SymbolNotFound
If a symbol cannot be found an IEX::Errors::SymbolNotFound exception is raised.
ClientError
All errors that return HTTP codes 400-600 result in a IEX::Errors::ClientError exception.
Contributing
See CONTRIBUTING.
Copyright and License
Copyright (c) 2018, Daniel Doubrovkine and Contributors.
This project is licensed under the MIT License.