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",
            "Name" : "888 Coin",
            "Coin" : "888",
            "Open" : 0.00000901,
            "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",
            "Name" : "A3C Coin",
            "Coin" : "A3C",
            "Open" : 0.00000020,
            "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",
            "Name" : "Litecoin",
            "Coin" : "LTC",
            "Open" : 0.01100000,
            "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":"SAL-2827-8107-1515589307",
         "Exchange":"BTC-LTC",
         "OrderType":"LIMIT_SELL",
         "Quantity":5.00000000,
         "QuantityRemaining":5.00000000,
         "Limit":2.00000000,
         "Opened":"2014-07-09T03:55:48.77"
      },
      {  
         "Uuid":"PCH-6980-7248-1515589567",
         "Exchange":"BTC-LTC",
         "OrderType":"LIMIT_BUY",
         "Quantity":100000.00000000,
         "QuantityRemaining":100000.00000000,
         "Limit":0.00000001,
         "Opened":"2014-07-09T03:55:48.583"
      }
    ]
}



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
    }
}