README.md

# kraken_api

**Elixir library for Kraken (kraken.com) exchange API**

## Installation

This package can be installed
by adding `kraken_api` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:kraken_api, "~> 0.1.0"}
  ]
end
```

The docs can
be found at [https://hexdocs.pm/kraken_api](https://hexdocs.pm/kraken_api).

## Configuration
You'll need to provide two environment variables which supply your Kraken API key and private key. You can generate them at [https://www.kraken.com/u/settings/api](https://www.kraken.com/u/settings/api)

```elixir
use Mix.Config

config :kraken_api,
  api_key: "YOUR_API_KEY",
  private_key: "YOUR_PRIVATE_KEY"
```

You might want to keep the key out of the version control system.

## Usage
The names of the available methods correspond to the names listed at [https://www.kraken.com/help/api](https://www.kraken.com/help/api). For example, "Get account balance" corresponds to the method `get_account_balance(params \\ %{})`.

If the API call succeeded, a tuple `{:ok, response}` will be returned, where `response` is a Map containing the response from Kraken.

If it failed, `{:error, errors}` will be returned, where `errors` might contain the reason for error given by Kraken. However, it might also simply be `nil` if it wasn't possible to obtain the reason for failure from Kraken.

Parameters are supplied as an Elixir Map to the methods. For example, 

```elixir
iex(1)> KrakenApi.get_asset_info(%{asset: "BCH,XBT"})
{:ok,
 %{"BCH" => %{"aclass" => "currency", "altname" => "BCH", "decimals" => 10,
    "display_decimals" => 5},
    "XXBT" => %{"aclass" => "currency", "altname" => "XBT", "decimals" => 10,
    "display_decimals" => 5}}}

iex(2)> KrakenApi.get_closed_orders(%{start: 1507204548, end: 1507244548})
{:ok,
 %{"closed" => ...},
    ...}
```

For the full list of API methods and the corresponding parameters please refer to the [Kraken documentation](https://www.kraken.com/help/api) and the [package documentation](https://hexdocs.pm/kraken_api). The [Kraken documentation](https://www.kraken.com/help/api) also contains the response formats.

## License
kraken_api is released under the MIT License. See LICENSE file for more information.