Prime API

Prime API is based on JSON, delivered through HTTPS and is mostly REST-ful. API URIs always start with a marker “/v1” to make the version explicit. All timestamps are returned in ISO 8601 format:

YYYY-MM-DDTHH:MM:SSZ 

Contents

Public API

Public API calls are available without authentication.

Private API

Private API calls require authentication via:

  • Your personal API key and optionally
  • IP address

Private API is off by default. You need to enable it in your profile.

You are expected to pass the API key as a HTTP header:

Authorization: PrimeExchange 84ffsOscok1Asbbqj28gcscv86M3nj4bRIamFaKe 

…where the long string is of course your API key.

It is also possible to pass the API key as a request param:

?api_key=84ffsOscok1Asbbqj28gcscv86M3nj4bRIamFaKe 

…although this is not recommended as sensitive data should not be passed in the URI.

Get my deposit address

GET /v1/prv/deposit_address/:currency_name.json 
  • currency_name – obligatory cryptocurrency name, i.e BTC, LTC

Example:

curl -v --request GET http://localhost:3000/v1/prv/deposit_address/BTC.json --header "Authorization: PrimeExchange 84ffsOscok1Asbbqj28gcscv86M3nj4bRIamFaKe" 

Response:

200 OK 
 {"address":"n2Ccn5em9gcQyBe2QvZnfzzXq8EZh1ncJj"} 

Error response:

422 Unprocessable Entity 
 {"errors":{"currency_name":"is invalid"}} 

Get balances and user data

GET /v1/prv/user.json 

Example:

curl -i --request GET http://localhost:3000/v1/prv/user.json --header "Authorization: PrimeExchange 84ffsOscok1Asbbqj28gcscv86M3nj4bRIamFaKe" 

Response:

200 OK 
{  "user": {  "username": "adalovelace",  "email": "[email protected]",  "balances": [  {  "available": "0.199",  "total": "0.199",  "currency_name": "BTC"  },  {  "available": "0.0",  "total": "0.0",  "currency_name": "PLN"  },  {  "available": "7.11",  "total": "7.11",  "currency_name": "LTC"  }  ]  } } 
  • available – the amount you can manage, i.e. to place a new offer
  • total – the amount including funds reserved for offers, withdrawals, etc.

Create a withdrawal request (of cryptocurrency)

POST /v1/prv/withdrawal_request.json 
  • currency_name – obligatory name of the currency like BTC, LTC, PLN
  • address – obligatory only for cryptocurrencies
  • amount – obligatory
  • otp – obligatory when user has set up a Google Authenticator One-Time-Passwords for withdrawals

Example:

curl -i --request POST http://localhost:3000/v1/prv/withdrawal_requests.json --header "Authorization: PrimeExchange 84ffsOscok1Asbbqj28gcscv86M3nj4bRM6sLRdM"  --data "currency_name=BTC&address=mm2SjeJ64vQokDjnkhvhcv9mGk1VfEJRsk&amount=0.03" 

Response:

201 Created 

Error response (missing or invalid OTP):

401 Unauthorized 
{  "errors": {  "otp": "is invalid"  } } 

Error response (invalid params):

422 Unprocessable Entity 
{  "errors": {  "currency_name": "is invalid",  "address": "is_invalid",  "amount": "is invalid"  } } 

Source

http://bitcoin.it/

See Also on BitcoinWiki