Guia do Desenvolvedor - API

Visão Geral

Coin2001 oferece através de um conjunto de APIs REST uma interface simples e poderosa para a gestão da maioria das funções disponíveis dentro do site. Todas as requisições usam como 'Content Type' o valor application/json e são operados apenas através de https. O domínio e URL base de acesso, independente do país, é https://coin2001.com/api/{version}/. Todas as requisições são do tipo 'GET' e todas as respostas de chamadas são devolvidas em forma de objeto no campo result. Deve-se sempre validar se o status devolvido tem a marcação success para garantir que a operação realizada teve sucesso.

São permitidas a criação de 100 ordens abertas e um total de 50.000 ordens por dia com frequência máxima de 1 ordem a cada 5 segundos. Nos reservamos o direito de mudar estes parâmetros conforme a conveniência de disponibilidade do sistema. Se estes limites de alguma forma interferirem em suas operações de trading, por favor nos encaminhe um email para ajuda@coin2001.com.

Se tiver alguma pergunta, comentário ou recomendação a respeito de nossa API, por favor envie um email para api@coin2001.com

Tópicos

  • Visão Geral
  • Autenticação
  • API - Detalhamento
  • Bibliotecas

Visão Geral

Esta é uma API simples baseada em RESTful API. Todas as chamadas devem ser do tipo GET e obrigatoriamente com conexão segura via https. Existe um modelo de versionamento da API que deve ser sempre informado nas chamadas. A versão atual da API é v1, outras versões encontram-se em desenvolvimento ou testes. Os 'endpoints' tem a seguinte estrutura básica:

https://coin2001.com/api/{version}/{method}?param=valor

Autenticação

Com a filosifia de ser uma solução simples, nos oferecemos um modelo simples de autenticação da API baseada em 'chaves'. A geração da chave é baseado no padrão de mercado HMAC-SHA512. Onde o parâmetro apikey e nonce devem ser sempre fornecidos em cada chamada e o 'hash' calculado com HMAC e enviado no 'header' com o nome de apisign. Nota: o parâmetro 'nonce' por hora não é obrigatório, mas em futuras versões passará a ser exigido.

As chaves pública e privada devem ser obtidas acessando a sua conta e clicando no link 'Dados Pessoais', ou acessando a URL http://coin2001.com/myAccount/profile

                    $apikey='xxx'; // chave pública
                    $apisecret='yyy'; // chave privada
                    $nonce=time(); // parâmetro por hora opcional
                    $uri='https://coin2001.com/api/v1/market/getOpenOrders?apikey='.$apikey.'&nonce='.$nonce;
                    $sign=hash_hmac('sha512',$uri,$apisecret);
                    $ch = curl_init($uri);
                    curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
                    $execResult = curl_exec($ch);
                    $obj = json_decode($execResult);
                    

API - Detalhamento

Nossas APIs são divididas em três categorias distintas
  • Public - API de uso público abertas a qualquer usuário e que não necessitam de autenticação
  • Account - Utilizadas para o gerenciamento da conta
  • Market - Específica para operações de trading

API Pública

/public/getMarkets

Usada para listar todos os 'Livros de Ofertas' (Market) disponíveis na Coin2001. De forma complementar, alguns meta-dados são fornecidos.

Parâmetros

Nenhum

Requisição:
https://coin2001.com/api/v1/public/getMarkets
Resposta
{
    "success" : true,
    "message" : "",
    "result" : [
        {
            "MarketCurrency" : "LTC",
            "BaseCurrency" : "BTC",
            "MarketCurrencyLong" : "Litecoin",
            "BaseCurrencyLong" : "Bitcoin",
            "MinTradeSize" : 0.01000000,
            "MarketName" : "BTC-LTC",
            "IsActive" : true,
            "Created" : "2014-02-13T00:00:00"
        }, {
            "MarketCurrency" : "DOGE",
            "BaseCurrency" : "BTC",
            "MarketCurrencyLong" : "Dogecoin",
            "BaseCurrencyLong" : "Bitcoin",
            "MinTradeSize" : 100.00000000,
            "MarketName" : "BTC-DOGE",
            "IsActive" : true,
            "Created" : "2014-02-13T00:00:00"
        }
    ]
}

                    

/public/getCurrencies

Usada para obter todas as criptomoedas e moedas suportadas na Coin2001. De forma complementar, alguns meta-dados são fornecidos.

Parâmetros

Nenhum

Requisição:
https://coin2001.com/api/v1/public/getCurrencies
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [
            {
                "Currency" : "BTC",
                "CurrencyLong" : "Bitcoin",
                "MinConfirmation" : 2,
                "TxFee" : 0.00020000,
                "IsActive" : true,
                "CoinType" : "BITCOIN",
                "BaseAddress" : null
            }, {
                "Currency" : "LTC",
                "CurrencyLong" : "Litecoin",
                "MinConfirmation" : 5,
                "TxFee" : 0.00200000,
                "IsActive" : true,
                "CoinType" : "BITCOIN",
                "BaseAddress" : null
            }
        ]
    }

                    



/public/getTicker

Usado para obter a cotação atual do 'Livro de Ofertas' (Market).

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)

Requisição:
https://coin2001.com/api/v1/public/getTicker
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : {
            "Bid" : 2.05670368,
            "Ask" : 3.35579531,
            "Last" : 3.35579531
        }
    }
                    



/public/getMarketSummaries

Usado para obter um resumo das atividades nas últimas 24 horas.

Parâmetros

Nenhum

Requisição:
https://coin2001.com/api/v1/public/getMarketSummaries
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [{
                "MarketName" : "BTC-888",
                "High" : 0.00000919,
                "Low" : 0.00000820,
                "Volume" : 74339.61396015,
                "Last" : 0.00000820,
                "BaseVolume" : 0.64966963,
                "TimeStamp" : "2014-07-09T07:19:30.15",
                "Bid" : 0.00000820,
                "Ask" : 0.00000831,
                "OpenBuyOrders" : 15,
                "OpenSellOrders" : 15,
                "PrevDay" : 0.00000821,
                "Created" : "2014-03-20T06:00:00",
                "DisplayMarketName" : null
            }, {
                "MarketName" : "BTC-A3C",
                "High" : 0.00000072,
                "Low" : 0.00000001,
                "Volume" : 166340678.42280999,
                "Last" : 0.00000005,
                "BaseVolume" : 17.59720424,
                "TimeStamp" : "2014-07-09T07:21:40.51",
                "Bid" : 0.00000004,
                "Ask" : 0.00000005,
                "OpenBuyOrders" : 18,
                "OpenSellOrders" : 18,
                "PrevDay" : 0.00000002,
                "Created" : "2014-05-30T07:57:49.637",
                "DisplayMarketName" : null
            }
        ]
    }
                    



/public/getMarketSummary

Usado para obter um resumo das atividades de um 'Livro de Ofertas' (Market) específico nas últimas 24 horas.

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)

Requisição:
https://coin2001.com/api/v1/public/getMarketSummary?market=BTC-LTC
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [
            {
                "MarketName" : "BTC-LTC",
                "High" : 0.01350000,
                "Low" : 0.01200000,
                "Volume" : 3833.97619253,
                "Last" : 0.01349998,
                "BaseVolume" : 47.03987026,
                "TimeStamp" : "2014-07-09T07:22:16.72",
                "Bid" : 0.01271001,
                "Ask" : 0.01291100,
                "OpenBuyOrders" : 45,
                "OpenSellOrders" : 45,
                "PrevDay" : 0.01229501,
                "Created" : "2014-02-13T00:00:00",
                "DisplayMarketName" : null
            }
        ]
    }
                    



/public/getOrderBook

Usado para obter o conteúdo do 'Livro de Ofertas' de um mercado.

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)
type (mandatório) - 'buy' para compradores; 'sell' para vendedores; 'both' para ambos

Requisição:
https://coin2001.com/api/v1/public/getOrderBook?market=BTC_LTC&type=both
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : {
            "buy" : [
                {
                    "Quantity" : 12.37000000,
                    "Rate" : 0.02525000
                }
            ],
            "sell" : [
                {
                    "Quantity" : 32.55412402,
                    "Rate" : 0.02540000
                }, {
                    "Quantity" : 60.00000000,
                    "Rate" : 0.02550000
                }, {
                    "Quantity" : 60.00000000,
                    "Rate" : 0.02575000
                }, {
                    "Quantity" : 84.00000000,
                    "Rate" : 0.02600000
                }
            ]
        }
    }

                    



/public/getMarketHistory

Usado para retornar as últimas ofertas executadas no 'Livro de Ofertas' (Market).

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)

Requisição:
https://coin2001.com/api/v1/public/getMarketHistory?market=BTC-DOGE
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [
            {
                "Id" : 319435,
                "TimeStamp" : "2014-07-09T03:21:20.08",
                "Quantity" : 0.30802438,
                "Price" : 0.01263400,
                "Total" : 0.00389158,
                "FillType" : "FILL",
                "OrderType" : "BUY"
            }, {
                "Id" : 319433,
                "TimeStamp" : "2014-07-09T03:21:20.08",
                "Quantity" : 0.31820814,
                "Price" : 0.01262800,
                "Total" : 0.00401833,
                "FillType" : "PARTIAL_FILL",
                "OrderType" : "BUY"
            }, {
                "Id" : 319379,
                "TimeStamp" : "2014-07-09T02:58:48.127",
                "Quantity" : 49.64643541,
                "Price" : 0.01263200,
                "Total" : 0.62713377,
                "FillType" : "FILL",
                "OrderType" : "SELL"
            }, {
                "Id" : 319378,
                "TimeStamp" : "2014-07-09T02:58:46.27",
                "Quantity" : 0.35356459,
                "Price" : 0.01263200,
                "Total" : 0.00446622,
                "FillType" : "PARTIAL_FILL",
                "OrderType" : "BUY"
            }
        ]
    }

                    



API - Livro de Ofertas (Market)

/market/buyLimit

Usada para fazer colocar uma ordem de compra em um 'Livro de Ofertas' específico.

Parâmetros

Requisição:
https://coin2001.com/api/v1/market/buyLimit?apikey=API_KEY&market=BTC-LTC&quantity=1.2&rate=1.3

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)
quantity (mandatório) - Quantidade que se deseja comprar
price (mandatório) - Valor da unidade a ser comprada. Opcionalmente pode-se usar o parâmetro rate

Resposta
    {
        "success" : true,
        "message" : "",
        "result" : {
            "uuid" : "e606d53c-8d70-11e3-94b5-425861b86ab6"
        }
    }
                    



/market/sellLimit

Usada para fazer colocar uma ordem de venda em um 'Livro de Ofertas' específico.

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)
quantity (mandatório) - Quantidade que se deseja comprar
price (mandatório) - Valor da unidade a ser comprada. Opcionalmente pode-se usar o parâmetro rate

Requisição:
https://coin2001.com/api/v1/market/sellLimit?apikey=API_KEY&market=BTC-LTC&quantity=1.2&rate=1.3
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : {
            "uuid" : "614c34e4-8d71-11e3-94b5-425861b86ab6"
        }
    }
                    



/market/cancel

Usada para cancelar uma ordem colocada anteriormente no 'Livro de Ofertas' (Market)

Parâmetros

uuid (mandatório) - uuid é o identificador da ordem anteriormente colocada

Requisição:
https://coin2001.com/api/v1/market/cancel?apikey=API_KEY&uuid=ORDER_UUID
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : null
    }
                    



/market/getOpenOrders

Lista todas as ordens colocadas (pelo usuário) no 'Livro de Ofertas' (Market).

Parâmetros

market (mandatório) - String literal com o código do 'Livro de Ofertas' (Market) (ex: BTC-LTC ou BTC_LTC)

Requisição:
https://coin2001.com/api/v1/market/getOpenOrders?apikey=API_KEY&market=BTC-LTC
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [
            {
                "Uuid" : null,
                "OrderUuid" : "09aa5bb6-8232-41aa-9b78-a5a1093e0211",
                "Exchange" : "BTC-LTC",
                "OrderType" : "LIMIT_SELL",
                "Quantity" : 5.00000000,
                "QuantityRemaining" : 5.00000000,
                "Limit" : 2.00000000,
                "CommissionPaid" : 0.00000000,
                "Price" : 0.00000000,
                "PricePerUnit" : null,
                "Opened" : "2014-07-09T03:55:48.77",
                "Closed" : null,
                "CancelInitiated" : false,
                "ImmediateOrCancel" : false,
                "IsConditional" : false,
                "Condition" : null,
                "ConditionTarget" : null
            }, {
                "Uuid" : null,
                "OrderUuid" : "8925d746-bc9f-4684-b1aa-e507467aaa99",
                "Exchange" : "BTC-LTC",
                "OrderType" : "LIMIT_BUY",
                "Quantity" : 100000.00000000,
                "QuantityRemaining" : 100000.00000000,
                "Limit" : 0.00000001,
                "CommissionPaid" : 0.00000000,
                "Price" : 0.00000000,
                "PricePerUnit" : null,
                "Opened" : "2014-07-09T03:55:48.583",
                "Closed" : null,
                "CancelInitiated" : false,
                "ImmediateOrCancel" : false,
                "IsConditional" : false,
                "Condition" : null,
                "ConditionTarget" : null
            }
        ]
    }


                    



Account Api

/account/getBalances

Utilizado para devolver todos os saldos da sua conta.

Parâmetros

Nenhum

Requisição:
https://coin2001.com/api/v1/account/getBalances?apikey=API_KEY
                    
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : [
            {
                "Currency" : "DOGE",
                "Balance" : 0.00000000,
                "Available" : 0.00000000,
                "Pending" : 0.00000000
            }, {
                "Currency" : "BTC",
                "Balance" : 14.21549076,
                "Available" : 14.21549076,
                "Pending" : 0.00000000
            }
        ]
    }
                    



/account/getBalance

Usado para devolver o saldo da conta para uma moeda específica.

Parâmetros

currency (mandatório) - String literal com o código da 'Moedas' (ex: XRP)

Requisição:
https://coin2001.com/api/v1/account/getBalance?apikey=API_KEY&currency=XRP
Resposta
    {
        "success" : true,
        "message" : "",
        "result" : {
            "Currency" : "BTC",
            "Balance" : 4.21549076,
            "Available" : 4.21549076,
            "Pending" : 0.00000000
        }
    }