NAME

Finance::Indodax - Trade with Indodax.com using Perl

VERSION

This document describes version 0.011 of Finance::Indodax (from Perl distribution Finance-Indodax), released on 2018-06-13.

SYNOPSIS

 use Finance::Indodax;

 # API key and secret are required unless you only want to access the public
 # API. They can be retrieved by logging into your Indodax account and

 my $indodax = Finance::Indodax->new(
     key    => 'Your API key',
     secret => 'Your API secret',
 );

 ## public API methods, these do not require API key & secret

 my $ticker = $indodax->get_ticker();
 # sample result:
 {
   ticker => {
     buy => 34381600,
     high => 34890000,
     last => 34381600,
     low => 34200000,
     sell => 34431800,
     server_time => 1496219814,
     vol_btc => 506.37837851,
     vol_idr => 17409110187,
   },
 }

 my $trades = $indodax->get_trades();
 # sample result:
 [
   {
     date => 1496220665,
     price => 34395100,
     amount => 0.00090000,
     tid => 2222043,
     type => "sell",
   },
   {
     date => 1496220574,
     price => 34422400,
     amount => 0.00879473,
     tid => 2222042,
     type => "buy",
   },
   ... # about 148 more
 ]

 my $depths = $indodax->get_depth();
 # sample result:
 {
   buy => [
     [34397100,"0.07656322"],
     [34397000,"0.21483687"],
     # ... about 148 more
   ],
   sell => [
     [034499900, "0.00150273"],
     [034500000, "0.94493067"],
     # ... about 148 more
   ],
 }

 my $prices = $indodax->get_price_history();
 # sample result:
 {
   chart => [
     [1392397200000,8024000,8024000,7580000,7803000,5.90],  # 2014-02-15
     [1392483600000,7803000,7934000,7257000,7303000,11.35], # 2014-02-16
     ...
   ],
 }

 ## all the methods below requires API key & secret

 $indodax->get_info();

 $indodax->get_tx_history();

 $indodax->get_trade_history(pair => "btc_idr");

 # create buy order of Rp 2,000,000 worth of bitcoins at price Rp 38,400,000/BTC
 $indodax->create_order(pair => "btc_idr", type => "buy" , price => "38400000", idr => "2000000");

 # create sell order of 0.01 BTC at price Rp 38,700,000/BTC
 $indodax->create_order(pair => "btc_idr", type => "sell", price => "38700000", btc => 0.01);

 $indodax->cancel_order(type => "sell", order_id => 9038293);

DESCRIPTION

Indodax, https://www.indodax.com (previously Bitcoin Indonesia, bitcoin.co.id) is an Indonesian Bitcoin exchange. This module provides a Perl wrapper for Indodax's Trade API.

METHODS

new

Constructor.

get_ticker

Public API. The API method name is ticker.

Arguments:

  • pair => str

    Optional, e.g. eth_btc. Default: btc_idr.

get_trades

Public API. The API method name is ticker.

Arguments:

  • pair => str

    Optional, e.g. eth_btc. Default: btc_idr.

get_depth

Public API. The API method name is ticker.

Arguments:

  • pair => str

    Optional, e.g. eth_btc. Default: btc_idr.

get_price_history

Public API (undocumented). The API method name is either chartdata or chart_1d.

This function returns an array of records. Each record is an array with the following data:

 [timestamp-in-unix-epoch, open, high, low, close]

Arguments:

  • pair => str

    Optional, e.g. eth_btc. Default: btc_idr.

    Note: pairs other than "btc_idr" do not seem to be supported at this time (404 response).

  • period => str (all|day, default: day)

    Specify period. all means since exchange began operation (Feb 2014). day means in the last ~24h.

tapi

General method to call API methods. Syntax:

 $indodax->tapi($method, %args)

For example:

 $indodax->tapi("getInfo")

is equivalent to:

 $indodax->get_info()

get_info

This method give information about balance and server's timestamp. The API method name is getInfo.

Arguments:

get_tx_history

This method give information about history of deposit and withdraw. The API method name is transHistory.

Arguments:

get_trade_history

This method give information about bitcoin transaction in buying and selling history. The API method name is tradeHistory.

Arguments:

  • count => int

  • from_id => int

  • to_id => int

  • order => "asc" | "desc"

  • since => epoch

  • end => epoch

  • pair => str (required)

get_open_orders

This method give information about existing open order. The API method name is openOrders.

Arguments:

  • pair => str (required)

create_order

This method use to make a new order. The API method name is trade.

Arguments:

  • pair => str (required)

  • type => str (required)

    Either "buy" or "sell".

  • price => num (required)

    Price (in Rp) per bitcoin.

  • idr => num (required when type=buy)

    Amount of IDR you want to buy.

  • btc => num (required when type=sell)

    Amount of BTC you want to sell.

cancel_order

This method cancel existing open order. The API method name is cancelOrder.

Arguments:

  • pair => pair (required)

  • type => str (required)

    Either "buy" or "sell".

  • order_id => num (required)

get_order

Get information about a specific order. The API method name is getOrder.

Arguments:

  • pair => str (required)

  • order_id => num (required)

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Finance-Indodax.

SOURCE

Source repository is at https://github.com/perlancar/perl-Finance-BTCIndo.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Finance-Indodax

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

API documentation, https://vip.bitcoin.co.id/downloads/BITCOINCOID-API-DOCUMENTATION.pdf

CLI that uses this module, for more convenience daily usage on the command-line: indodax (from App::indodax distribution).

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018, 2017 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.