Build custom applications or integrate payments with our powerful Bitcoin API

Bitcoin API


Build powerful Bitcoin applications, Bitcoin trading systems, or integrate Bitcoin payments into your website or app with the powerful BitX Bitcoin API.

The BitX Bitcoin API gives you the ability to:


The BitX API makes Bitcoin available to anyone. See also: BitX for Business

Make sure to always use HTTPS when calling the API. Non-TLS HTTP requests cause error 403 to be returned. Using non-TLS requests can leak your authentication credentials.

Make sure that your client validates the server's SSL certificate. Many libraries (e.g. urllib2 in Python2) don't validate server certificates by default. Failing to verify the server certificate makes your application vulnerable to man-in-the-middle attack.

Timestamps are always represented as an integer number of milliseconds since the UTC Epoch (a Unix timestamp).

Prices and volumes are always represented as a decimal strings e.g. "123.3432". We use strings instead of floats to preserve the precision.

Parameters for POST calls are sent as URL-encoded forms (application/x-www-form-urlencoded).

Non-authenticated API calls are rate limited to 10 per minute. Authenticated API calls are rate limited to 60 per minute. API call rate limits allow bursts up to 5 consecutive calls. Exceeding the limit causes HTTP error code 429 or 503 to be returned.

It is recommended to use a library to access the API if one is available for your language.

Market data API calls can be accessed by anyone without authentication.

Ticker

Returns the latest ticker indicators.

Definition
GET https://api.mybitx.com/api/1/ticker
Arguments
pair string required Currency pair e.g. XBTZAR
Example request
$ curl https://api.mybitx.com/api/1/ticker?pair=XBTZAR
Example response
{
  "ask": "1050.00",
  "timestamp": 1366224386716,
  "bid": "924.00",
  "rolling_24_hour_volume": "12.52",
  "last_trade": "950.00"
}

All tickers

Returns the latest ticker indicators from all active BitX exchanges.

Definition
GET https://api.mybitx.com/api/1/tickers
Example request
$ curl https://api.mybitx.com/api/1/tickers
Example response
{
  "tickers": [
    {
      "timestamp": 1405413955793,
      "bid": "6801.00",
      "ask": "6900.00",
      "last_trade": "6900.00",
      "rolling_24_hour_volume": "12.455579",
      "pair":"XBTZAR"
    },
    {
      "timestamp": 1405413955337,
      "bid": "5000.00",
      "ask":"6968.00",
      "last_trade": "6830.00",
      "rolling_24_hour_volume": "0.00",
      "pair":"XBTNAD"
    }
  ]
}

Order Book

Returns a list of bids and asks in the order book. Ask orders are sorted by price ascending. Bid orders are sorted by price descending. Note that multiple orders at the same price are not necessarily conflated.

Definition
GET https://api.mybitx.com/api/1/orderbook
Arguments
pair string required Currency pair e.g. XBTZAR
Example request
$ curl https://api.mybitx.com/api/1/orderbook?pair=XBTZAR
Example response
{
  "timestamp": 1366305398592,
  "bids": [
    {
      "volume": "0.10",
      "price": "1100.00"
    },
    {
      "volume": "0.10",
      "price": "1000.00"
    },
    {
      "volume": "0.10",
      "price": "900.00"
    }
  ],
  "asks": [
    {
      "volume": "0.10",
      "price": "1180.00"
    },
    {
      "volume": "0.10",
      "price": "2000.00"
    }
  ]
}

Trades

Returns a list of the most recent trades.

Definition
GET https://api.mybitx.com/api/1/trades
Arguments
pair string required Currency pair e.g. XBTZAR
since integer optional Fetch trades executed after this time, specified as a Unix timestamp in milliseconds.
Example request
$ curl https://api.mybitx.com/api/1/trades?pair=XBTZAR
Example response
{
  "trades": [
    {
      "volume": "0.10",
      "timestamp": 1366052621774,
      "price": "1000.00",
      "is_buy": true
    },
    {
      "volume": "1.20",
      "timestamp": 1366052621770,
      "price": "1020.50",
      "is_buy": false
    }
  ]
}

Some API calls require your application to authenticate itself. This is done using an API key associated with your account. You can create an API key by visiting the API Keys section on the settings page.

An API key consists of an id and a secret. For example: cnz2yjswbv3jd (key id) and 0hydMZDb9HRR3Qq-iqALwZtXLkbLR4fWxtDZvkB9h4I (key secret).

API requests are authenticated using HTTP basic authentication with the key id as the username and the key secret as the password. A missing, incorrect or revoked key causes error 401 to be returned.

Permissions

Each API key is granted a set of permissions when it is created. The key can only be used to call the permitted API functions.

Here is a list of the possible permissions:

  • Perm_R_Balance = 1 (View balance)
  • Perm_R_Transactions = 2 (View transactions)
  • Perm_W_Send = 4 (Send to any address)
  • Perm_R_Addresses = 8 (View addresses)
  • Perm_W_Addresses = 16 (Create addresses)
  • Perm_R_Orders = 32 (View orders)
  • Perm_W_Orders = 64 (Create orders)
  • Perm_R_Withdrawals = 128 (View withdrawals)
  • Perm_W_Withdrawals = 256 (Create withdrawals)
  • Perm_R_Merchant = 512 (View merchant invoices)
  • Perm_W_Merchant = 1024 (Create merchant invoices)
  • Perm_W_ClientDebit = 8192 (Debit accounts)
  • Perm_W_ClientCredit = 16384 (Credit accounts)
  • Perm_R_Beneficiaries = 32768 (View beneficiaries)
  • Perm_W_Beneficiaries = 65536 (Create and delete beneficiaries)

A set of permissions is represented as the bitwise OR of each permission in the set. For example the set of permissions required to view balances and orders is Perm_R_Balance | Perm_R_Orders = 33.

All transactions on the BitX platform operate on accounts. Each account is denominated in a single currency and contains an ordered list of entries that track its running balance.

Each account has a separate balance and available balance. The available balance may be lower than the balance if some funds have been reserved (e.g. for a open limit order). Account entries affect the balance and available balance independently.

Account entries are numbered sequentially. It is guaranteed that entries are never reordered or deleted. It is also guaranteed that the core attributes of the entry (the running balances and index) are never modified. Therefore, an account acts as an append-only log of transactions.

Create Account

Create an additional account for the specified currency.

Definition
POST https://api.mybitx.com/api/1/accounts
Arguments
currency string required The currency code for the account you want to create e.g. XBT, IDR, MYR, ZAR
name string required The label to use for this account e.g. "Trading ACC".

You must be verified to trade currency in order to be able to create an account. A user has a limit of 4 accounts per currency.

Example request
$ curl -u keyid:keysecret -X POST -d currency=XBT -d name=Moon https://api.mybitx.com/api/1/accounts
Example response
{
  "id": "319323232",
  "name": "Moon",
  "currency": "XBT"
}
Permissions required
Perm_W_Addresses

Balances

Return the list of all accounts and their respective balances.

Definition
GET https://api.mybitx.com/api/1/balance
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/balance
Example response
{
  "balance": [
    {
      "account_id": "1224342323",
      "asset": "XBT",
      "balance": "1.012423",
      "reserved": "0.01",
      "unconfirmed": "0.421",
      "name": "XBT Account"
    },
    {
      "account_id": "2997473",
      "asset": "ZAR",
      "balance": "1000.00",
      "reserved": "0.00",
      "unconfirmed": "0.00",
      "name": "ZAR Account"
    }
  ]
}
Permissions required
Perm_R_Balance

Transactions

Return a list of transaction entries from an account.

Transaction entry rows are numbered sequentially starting from 1, where 1 is the oldest entry. The range of rows to return are specified with the min_row (inclusive) and max_row (exclusive) parameters. At most 1000 rows can be requested per call.

If min_row or max_row is non-positive, the range wraps around the most recent row. For example, to fetch the 100 most recent rows, use min_row=-100 and max_row=0.

Definition
GET https://api.mybitx.com/api/1/accounts/:id/transactions
Arguments
id string required Account ID
min_row int required Minimum of the row range to return (inclusive)
max_row int required Maximum of the row range to return (exclusive)
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/accounts/319232323/transactions?min_row=1&max_row=100
Example response
{
  "id": "319232323",
  "transactions": [
    {
      "row_index": 2,
      "timestamp": 1429908835000,
      "balance": 0.08,
      "available": 0.08,
      "balance_delta": -0.02,
      "available_delta": -0.02,
      "currency": "XBT",
      "description": "Sold 0.02 BTC"
    },
    {
      "row_index": 1,
      "timestamp": 1429908701000,
      "balance": 0.1,
      "available": 0.1,
      "balance_delta": 0.1,
      "available_delta": 0.1,
      "currency": "XBT",
      "description": "Bought 0.1 BTC"
    }
  ]
}
Permissions required
Perm_R_Transactions

Pending transactions

Return a list of all pending transactions related to the account.

Unlike account entries, pending transactions are not numbered, and may be reordered, deleted or updated at any time.

Definition
GET https://api.mybitx.com/api/1/accounts/:id/pending
Arguments
id string required Account ID
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/accounts/319232323/pending
Example response
{
  "id": "319232323",
  "pending": [
    {
      "timestamp": 1429908835000,
      "balance": 0.03,
      "available": 0.03,
      "balance_delta": 0.03,
      "available_delta": 0.03,
      "currency": "XBT",
      "description": "Received Bitcoin - 1 of 3 confirmations"
    }
  ]
}
Permissions required
Perm_R_Transactions

Trading on the market is done by submitting trade orders. After a new order has been created, it is submitted for processing by the order matching engine. The order then either matches against an existing order in the order book and is filled or it rests in the order book until it is stopped.

Click here to read more about how order matching works.

List Orders

Returns a list of the most recently placed orders. You can specify an optional state=PENDING parameter to restrict the results to only open orders. You can also specify the market by using the optional pair parameter. The list is truncated after 100 items.

Definition
GET https://api.mybitx.com/api/1/listorders
Arguments
state string optional Filter to only orders of this state e.g. PENDING
pair string optional Filter to only orders of this currency pair e.g. XBTZAR
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/listorders
Example response
{
  "orders": [
    {
      "base": "0.027496",
      "counter": "81.140696",
      "creation_timestamp": 1423990327333,
      "expiration_timestamp": 0,
      "completed_timestamp": 1423991515534,
      "fee_base": "0.00",
      "fee_counter": "0.00",
      "limit_price": "2951.00",
      "limit_volume": "0.027496",
      "order_id": "BXF3J88PZAYGXH7",
      "pair": "XBTZAR",
      "state": "COMPLETE",
      "type": "ASK",

    }
  ]
}
BID
bid (buy) limit order
ASK
ask (sell) limit order
The possible order states are:
PENDING
The order has been placed. Some trades may have taken place but the order is not filled yet.
COMPLETE
The order is no longer active and has been settled.

The base and counter amounts are the principal amounts that were traded, ignoring fees. For example, if the order resulted in a single trade of 1 BTC for 1000 ZAR, then base=1 BTC and counter=1000 ZAR.

The fee_base and fee_counter amounts are the fees debited after the trade principal amounts.

For example, for a buy order, base - base_fee would be credited to the BTC account and counter + counter_fee would be debited from the ZAR account. Similarly, for a sell order, counter - counter_fee would be credited to the ZAR account and base + base_fee would be debited from the BTC account.

The pair specifies the market.

Permissions required
Perm_R_Orders

Post Limit Order

Create a new trade order.

Warning! Orders cannot be reversed once they have executed. Please ensure your program has been thoroughly tested before submitting orders.

Definition
POST https://api.mybitx.com/api/1/postorder
Arguments
pair string required The currency pair to trade e.g. XBTZAR
type string required "BID" for a bid (buy) limit order or "ASK" for an ask (sell) limit order.
volume string required Amount of Bitcoin to buy or sell as a decimal string in units of BTC e.g. "1.423".
price string required Limit price as a decimal string in units of ZAR/BTC e.g. "1200".
Example request
$ curl -u keyid:keysecret -X POST -d pair=XBTZAR -d type=BID -d volume=0.1 -d price=1000 https://api.mybitx.com/api/1/postorder
Example response
{
  "order_id": "BXMC2CJ7HNB88U4"
}
Permissions required
Perm_W_Orders

Post Market Order

Create a new market order.

Warning! Orders cannot be reversed once they have executed. Please ensure your program has been thoroughly tested before submitting orders.

Definition

A market order executes immediately, and either buys as much bitcoin that can be bought for a set amount of fiat currency, or sells a set amount of bitcoin for as much fiat as possible.

POST https://api.mybitx.com/api/1/marketorder
Arguments
pair string required The currency pair to trade e.g. XBTZAR
type string required "BUY" to buy bitcoin, or "SELL" to sell bitcoin.
counter_volume string required - if type is "BUY" For a "BUY" order: amount of local currency (e.g. ZAR, MYR) to spend as a decimal string in units of the local currency e.g. "100.50".
base_volume string required - if type is "SELL" For a "SELL" order: amount of Bitcoin to sell as a decimal string in units of BTC e.g. "1.423".
Example request
$ curl -u keyid:keysecret -X POST -d pair=XBTZAR -d type=BUY -d counter_volume=100.50  https://api.mybitx.com/api/1/marketorder
Example response
{
  "order_id": "BXMC2CJ7HNB88U4"
}
Permissions required
Perm_W_Orders

Stop an Order

Request to stop an order.

Definition
POST https://api.mybitx.com/api/1/stoporder
Arguments
order_id string required The order reference as a string e.g. BXMC2CJ7HNB88U4
Example request
$ curl -u keyid:keysecret -X POST -d order_id=BXMC2CJ7HNB88U4 https://api.mybitx.com/api/1/stoporder
Example response
{
  "success": true
}
Permissions required
Perm_W_Orders

Get an Order

Get an order by its id.

Definition
GET https://api.mybitx.com/api/1/orders/:id
Arguments
id string required The order ID
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/orders/BXHW6PFRRXKFSB4
Example response
{
  "order_id": "BXHW6PFRRXKFSB4",
  "creation_timestamp": 1402866878367,
  "expiration_timestamp": 0,
  "completed_timestamp": 0,
  "type": "ASK",
  "state": "PENDING",
  "limit_price": "6500.00",
  "limit_volume": "0.05",
  "base": "0.03",
  "counter": "195.02",
  "fee_base":"0.000",
  "fee_counter":"0.00",
  "trades": [
        {
            "price": "6501.00",
            "timestamp": 1402866878467,
            "volume": "0.02"
        },
        {
            "price": "6500.00",
            "timestamp": 1402866878567,
            "volume": "0.01"
        }
    ],
}
Permissions required
Perm_R_Orders

Receive addresses

Returns the default receive address associated with your account and the amount received via the address. You can specify an optional address parameter to return information for a non-default receive address. In the response, total_received is the total confirmed Bitcoin amount received excluding unconfirmed transactions. total_unconfirmed is the total sum of unconfirmed receive transactions.

Definition
GET https://api.mybitx.com/api/1/funding_address
Arguments
asset string required Currency code of the asset e.g. XBT
address string optional Specific Bitcoin address to retrieve. If not provided, the default address will be used.
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/funding_address?asset=XBT&address=B1tC0InExAMPL3fundIN6AdDreS5t0Use
Example response
{
  "asset": "XBT",
  "address": "B1tC0InExAMPL3fundIN6AdDreS5t0Use",
  "total_received": "1.234567",
  "total_unconfirmed": "0.00"
}
Permissions required
Perm_R_Addresses

Create receive address

Allocates a new receive address to your account. There is a limit of 50 receive addresses per user.

Definition
POST https://api.mybitx.com/api/1/funding_address
Example request
$ curl -u keyid:keysecret -X POST -d asset=XBT https://api.mybitx.com/api/1/funding_address
Example response
{
  "asset": "XBT",
  "address": "B1tC0InExAMPL3fundIN6AdDreS5t0Use",
  "total_received": "0.00",
  "total_unconfirmed": "0.00"
}
Permissions required
Perm_W_Addresses

List withdrawal requests

Returns a list of withdrawal requests.

Definition
GET https://api.mybitx.com/api/1/withdrawals
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/withdrawals
Example response
{
  "withdrawals": [
    {
      "status": "PENDING",
      "id": "2221"
    },
    {
      "status": "COMPLETED",
      "id": "1121"
    }
  ]
}
Permissions required
Perm_R_Withdrawals

Request a withdrawal

Creates a new withdrawal request.

Definition
POST https://api.mybitx.com/api/1/withdrawals
Arguments
type string required Withdrawal types e.g. ZAR_EFT, NAD_EFT, KES_MPESA, MYR_IBG, IDR_LLG
amount string required Amount to withdraw. The currency depends on the type.
beneficiary_id string optional The beneficiary ID of the bank account the withdrawal will be paid out to. This parameter is required if you have multiple bank accounts. Your bank account beneficiary ID can be found by clicking on the beneficiary name on the Beneficiaries page.
Example request
$ curl -u keyid:keysecret -X POST -d type=ZAR_EFT -d amount=1000 https://api.mybitx.com/api/1/withdrawals
Example response
{
  "status": "PENDING",
  "id": "1212"
}
Permissions required
Perm_W_Withdrawals

Get the status of a withdrawal request

Returns the status of a particular withdrawal request.

Definition
GET https://api.mybitx.com/api/1/withdrawals/:id
Arguments
id string required Withdrawal ID to retrieve.
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/withdrawals/1212
Example response
{
  "status": "COMPLETED",
  "id": "1212"
}
Permissions required
Perm_R_Withdrawals

Cancel a withdrawal request

Cancel a withdrawal request. This can only be done if the request is still in state PENDING.

Definition
DELETE https://api.mybitx.com/api/1/withdrawals/:id
Arguments
id string required ID of the withdrawal to cancel.
Example request
$ curl -u keyid:keysecret -X DELETE https://api.mybitx.com/api/1/withdrawals/1212
Example response
{
  "status": "CANCELLED",
  "id": "1212"
}
Permissions required
Perm_W_Withdrawals

Send Bitcoin from your account to a Bitcoin address or email address.

If the email address is not associated with an existing BitX account, an invitation to create an account and claim the funds will be sent.

Warning! Bitcoin transactions are irreversible. Please ensure your program has been thoroughly tested before using this call.

Definition
POST https://api.mybitx.com/api/1/send
Arguments
amount string required Amount to send as a decimal string.
currency string required Currency to send e.g. XBT
address string required Destination Bitcoin address or email address to send to.
description string optional Description for the transaction to record on the account statement.
message string optional Message to send to the recipient. This is only relevant when sending to an email address.
Example request
curl \
  -u keyid:keysecret \
  -X POST \
  -d amount=0.001 \
  -d currency=XBT \
  -d [email protected] \
  -d description=Your+reference \
  -d message=Message+for+recipient \
  https://api.mybitx.com/api/1/send
Example response
{"success":true}
Permissions required
Perm_W_Send

Quotes allow you to lock in an exchange rate for a short time with the option of either accepting or rejecting the quote.

Quotes can be useful for various customer-facing applications where price fluctuations would be confusing.

The API is used as follows: First create a quote for the transaction that you want to perform. If you decide to accept the quote before it expires, you will exercise the quote. If you decide not to accept it, you will discard the quote. You can also retrieve the status of a quote at any time.

Create a quote

Creates a new quote to buy or sell a particular amount.

You can specify either the exact amount that you want to pay or the exact amount that you want too receive.

For example, to buy exactly 0.1 Bitcoin using ZAR, you would create a quote to BUY 0.1 XBTZAR. The returned quote includes the appropriate ZAR amount. To buy Bitcoin using exactly ZAR 100, you would create a quote to SELL 100 ZARXBT. The returned quote specifies the Bitcoin as the counter amount that will be returned.

An error is returned if your account is not verified for the currency pair, or if your account would have insufficient balance to ever exercise the quote.

Definition
POST https://api.mybitx.com/api/1/quotes
Arguments
type string required Possible types: BUY, SELL
base_amount string required Amount to buy or sell in the pair base currency.
pair string required Currency pair to trade e.g. XBTZAR, XBTMYR. The pair can also be flipped if you want to buy or sell the counter currency (e.g. ZARXBT).
Example request
curl \
  -u keyid:keysecret \
  -X POST \
  -d type=BUY \
  -d pair=XBTZAR \
  -d base_amount=0.1 \
  https://api.mybitx.com/api/1/quotes
Example response
{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": false
}
Permissions required
Perm_W_Orders

Get a quote

Get the latest status of a quote.

Definition
GET https://api.mybitx.com/api/1/quotes/:id
Arguments
id string required ID of the quote to retrieve.
Example request
$ curl -u keyid:keysecret https://api.mybitx.com/api/1/quotes/1324
Example response
{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": false
}
Permissions required
Perm_R_Orders

Exercise a quote

Exercise a quote to perform the trade. If there is sufficient balance available in your account, it will be debited and the counter amount credited.

An error is returned if the quote has expired or if you have insufficient available balance.

Definition
PUT https://api.mybitx.com/api/1/quotes/:id
Arguments
id string required ID of the quote to exercise.
Example request
$ curl -u keyid:keysecret -X PUT https://api.mybitx.com/api/1/quotes/1324
Example response
{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": true
}
Permissions required
Perm_W_Orders

Discard a quote

Discard a quote. Once a quote has been discarded, it cannot be exercised even if it has not expired yet.

Definition
DELETE https://api.mybitx.com/api/1/quotes/:id
Arguments
id string required ID of the quote to discard.
Example request
$ curl -u keyid:keysecret -X DELETE https://api.mybitx.com/api/1/quotes/1324
Example response
{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": true,
  "exercised": false
}
Permissions required
Perm_W_Orders

The OAuth2 API allows you to build applications that securely link into BitX accounts. Users can authorize your application to perform certain actions on their account such as fetching transaction history, trading and even withdrawing funds.

If you are interested in integrating with BitX, please get in touch with us at [email protected] We will need the following information to register your OAuth2 client:

  • Application name
  • Application description
  • Website URL
  • Permissions required
  • Redirect URL
  • Your BitX account username

Authorize

The first step to connecting to a user's account is to redirect the user to the authorize endpoint.

https://www.bitx.co/oauth2/authorize?client_id=your_client_id&scope=your_requested_permissions&state=your_unique_state

The user is presented with a page explaining the requested permissions. If the user authorizes the request, they will be redirected to the client's redirect URL with an authorization code specified as one of the query parameters e.g. https://example.com/callback?code=authorization_code&state=your_unique_state.

The requested permissions (scope) is an integer representing a set of permissions as described in the permissions section. For example, to view the user's balance and orders, the permission required is Perm_R_Balance | Perm_R_Orders = 33.

Grant

Once your application has received an authorization code, it can exchange it for an API key. This is done by calling the grant endpoint. The resulting API key can be used to access the BitX API calls for which it has the appropriate permissions.

Definition
POST https://api.mybitx.com/api/oauth2/grant
Arguments
grant_type string required Always set this to the string "authorization_code".
code string required The authorization code that you received from the authorize callback.
Example request
curl \
  -u client_id:client_secret \
  -X POST \
  -d grant_type=authorization_code \
  -d code=your_authorization_code \
  https://api.mybitx.com/api/oauth2/grant
Example response
{
  "api_key_id": "fkj38fh229s",
  "api_key_secret": "3j3fklKDDHsk2jds8DFkdfkj34kjAkiwvN2834"
}

The BitX Merchant API is currently only available to high-volume partners. If you are interested in integrating Bitcoin payments as a merchant, please contact BitX Support.

  • 2016-07-25: Added optional beneficiary_id parameter to POST /api/1/withdrawals.
  • 2016-05-29: Error code 429 may be returned when exceeding rate limits. This will become the default as of 2016-07-01.
  • 2016-04-04: Added completed_timestamp field to GET /api/1/listorders and GET /api/1/orders/:id responses.
  • 2016-02-05: Added optional since parameter to GET /api/1/trades and added is_buy field to the response.
  • 2015-09-14: Added POST /api/1/marketorder to allow placing of market orders.
  • 2015-07-29: Added Perm_R_Beneficiaries and Perm_W_Beneficiaries permissions. You will have to generate a new API key if you require these permissions.
  • 2015-06-08: Renamed GET /api/1/withdrawals/ to GET /api/1/withdrawals and POST /api/1/withdrawals/ to POST /api/1/withdrawals to be more consistent with other endpoints. The old URLs are now deprecated.
  • 2015-05-28: Added POST accounts for creating additional accounts in specified currencies.
  • 2015-05-07: Added the "Name" field to the "Balance" response
  • 2015-04-25:
    • Added the "Accounts" section.
    • Added the account transactions and pending transactions calls.
    • Added the "Permissions" section.
    • Documented which permissions are required for each call.
    • Updated description of the "send" call. A pin is no longer required.
    • Added "name" parameter to POST /api/1/funding_address.
  • 2015-03-27: Return a list of trades for an order on GET orders/:id if the order has any trades.
  • 2015-01-30: Clarified the interpretation of base, counter, base_fee and counter_fee in the list_orders response in the case where counter_fee is nonzero for buy orders and where base_fee is nonzero for sell orders.
  • 2014-12-17: The amount parameter for withdrawal requests now excludes the withdrawal fee.
  • 2014-12-12:
    • Added the new Quotes API.
    • The transactions beta call has been deprecated.
  • 2014-12-04: The balance method can now be called with no arguments to return all account balances.
  • 2014-08-26:
    • Added Send API call.
    • Added OAuth2 API.
  • 2014-06-10: Orders placed through the API are no longer subject to different limits than those placed through the website.
  • 2014-06-02:
    • You can now create multiple API keys with different permissions (e.g. read-only, read/write).
    • Added calls to list, create, get and cancel withdrawal requests.
    • Added link to Android client library.
  • 2014-05-29:
    • The preferred host name for API calls has changed to api.mybitx.com.
    • Added experimental call to retrieve transactions list.
    • Added call to allocate new receive addresses.
    • Receive address call now returns the amount received by that address.
    • You can now request listorders to return only the list of open orders.
  • 2014-04-15: Previously orders created through the API would expire after 24 hours. Now, orders created through the API do not expire. The behaviour is now the same as for orders placed through the website.
  • 2014-01-25:
    • A new funding_address call has been added to get the bitcoin address you need to fund your trade account balance.
  • 2014-01-21:
    • The API has been extended to support multiple asset pairs.
    • A new balance call has been added to query the trading account balance.
    • All URLs have been renamed from /api/1/BTCZAR/x to /api/1/x?pair=XBTZAR. The old URLs are now deprecated.
    • getlimits: This call has been deprecated. Please use the new balance call instead.
    • ticker: The currency field is now deprecated.
    • orderbook: The currency field is now deprecated.
    • trades: The currency field is now deprecated.
    • listorders: The btc, zar, fee_btc and fee_zar fields are now deprecated. Please use base, counter, fee_base, fee_counter fields instead.
    • The embedded market indicator has been removed since nobody is using it.
    • All deprecated features will continue to work for two months.
  • 2014-01-06:
    • listorders: Added fee_btc and fee_zar fields.
    • listorders: Removed SETTLEMENT state (it's no longer relevant).
    • ticker: Removed mtgox_price (use Mt Gox's API directly instead).