Description
Library for the IEX Trading API.
Description
Simple library for interacting with the IEX Trading API
README.md
Haskell iexcloud client
This project is based on the legacy iex API client stocks
Haskell library for the IEX trading API.
Example:
stack build && stack ghci
getQuote :: AuthAndSymbol -> IO (Maybe IEXQuote.Quote)
> getQuote ("pk_myAPItoken", "msft")
Just (Quote {symbol = "MSFT",
companyName = "Microsoft Corp.",
primaryExchange = Nothing,
sector = Nothing,
calculationPrice = "tops",
open = 128.9,
...
})
getCompany :: AuthAndSymbol -> IO (Maybe IEXCompany.Company)
> getCompany ("pk_myAPItoken", "aapl")
Just (Company {symbol = "AAPL",
companyName = "Apple Inc.",
exchange = "Nasdaq Global Select",
industry = "Computer Hardware",
website = "http://www.apple.com",
description = "Apple Inc is designs ...",
ceo = "Timothy D. Cook",
issueType = "cs",
sector = "Technology"})
getPrice :: AuthAndSymbol -> IO (Maybe Double)
> getPrice ("pk_myAPItoken", "msft")
Just 131.56
Please see the HUnit test for a complete example of all API calls.
How to run test suite
stack test
Contribute
For any problems, comments, or feedback please create an issue here on GitHub.
Attribution
If you redistribute our API data:
- Cite IEX using the following text and link: “Data provided for free by IEX.”
- Provide a link to https://iextrading.com/api-exhibit-a in your terms of service.
Before uploading to hackage
- Make sure that all dependencies in 'iexcloud.cabal' are version bound. Also:
- Hackage is intended to be a permanent record. Therefore uploads cannot be changed or removed.
- Only upload things that work, are useful to other people, and that you intend to maintain.
- Use
cabal gen-bounds
to put PVP-compliant version bounds (lower AND upper) on ALL your unique dependencies so your package will still be buildable years down the road. One important thing to note is that you only need to include version bounds once. For example, if you depend on the same package in your library and your test suite, you only need to put the version bounds for that dependency in one place. This keeps the dependency bounds information DRY. - Package candidates CAN be changed, so use them to test things out and get everything right before you publish permanently to the main index.