27 November 2023
- /v1/public/currencies responses now include the supported and default blockchain network types for deposits and withdrawals, per currency. The network type can also be supplied when creating an address book address.
- NOTE: Due to the sensitive nature of withdrawals and deposits, providing the network type will become mandatory for all currencies that support more than one network for withdrawals and deposits from 1 April 2024.
- Updated API's:
15 November 2023
/v1/public/futures/info- which returns contract details of perpetual futures contracts
/v1/positions/open- which returns open futures contracts for an account
/v1/positions/closed/summary- which returns a summary of closed futures contracts
/v1/positions/closed?currencyPair- which returns a detailed view of closed futures contracts per futures pair
/v1/positions/history?currencyPair- which returns a history of futures contracts held by an account
/v1/positions/funding/history?currencyPair- a history of funding
/v1/margin/account/status- to enable an account for Futures trading using the endpoint
- Added an example of the
MARK_PRICE_UPDATEevent on the TRADE websocket
09 November 2023
- Added the
/v1/orders/modifyto modify open and partially filled Limit Orders.
MODIFY_ORDER_OUTCOMEevent to the Account Websocket.
- Updated the
OPEN_ORDERS_UPDATEWebSocket event to include the Order Modified status.
- Added Margin trading to the
/v1/public/:currencyPair/markprice/buckets, which returns Mark Price buckets for a given currency pair.
- Added Limit Order Reprice to
- Updated Trade History
/v1/account/:currencyPair/tradehistory?limit=10to include fees and rewards
10 October 2023
Added per-second rate-limit to
18 September 2023
Added sequence number calculation to
FULL_ORDERBOOK_UPDATEweb socket documentation.
18 August 2023
- Added V2 Exchange Buy/Sell API in Alpha.
28 July 2023
- Updated per second rate limits to reflect new limits.
14 July 2023
- Added Staking API
15 May 2023
- Documented new websocket connections rate limit
/v1/balancesrequest with query parameter
excludeZeroBalancesto return non-zero balances only
BALANCE_UPDATEWebSocket event to include the following fields:
Updated pre-request script and documentation to support the
yourSubAccountIdenvironment variable. This allows impersonating an account with every request.
06 March 2023
- Added a request to link a new fiat bank account
- Added a request for linked fiat bank account details
- Added a request to delete a linked fiat bank account
- Added a request to list all banks supported for fiat withdrawals per currency
- Added a request to get an auto-buy reference for buying a currency with a fiat deposit
- Added a request to list all currencies supported for auto-buy per fiat currency
03 March 2023
- Removed Deposit Instructions for Wire Transfers
25 November 2022
Updated rate limits for
17 November 2022
- Added the Caching section.
collateralWeightfields to -
v1/public/currencieswhich are reserved for future use.
/v1/public/pairsendpoint, reserved for future use.
MARK_PRICE_UPDATEevent to the
BALANCE_UPDATEWebsocket event to include the following fields that are reserved for future use:
NEW_ACCOUNT_HISTORY_RECORDWebsocket event to include the following fields that are reserved for future use:
19 August 2022
- Clarify that per minute and per second rate limits do not interact.
- Add examples for stop orders to the Exchange Buy/Sell API.
- Increase subaccount limit to 2000 per main account.
18 August 2022
- Added `/v1/orders` request to cancel all open orders.
- Added `/v1/orders/:currencyPair` to cancel all open orders for the given currency pair.
04 August 2022
Increased per second rate limits for
20 July 2022
- Updated VALR Pay documentation to reflect new ability to send and receive cryptocurrencies in addition to ZAR.
11 July 2022
- Updated per second rate limits to reflect new limits
27 June 2022
Added per second rate limits to
12 June 2022
The Market Summary APIs
/v1/public/:currencyPair/marketsummarynow return a
markPricefield, which is reserved for future use.
The Balances API
/v1/account/balancesnow returns the following additional fields, which are reserved for future use.
The Simple Buy/Sell Quote API
v1/simple/:currencyPair/quotenow returns an array of
quantity; if they exist.
9 May 2022
The FULL_ORDERBOOK_UPDATE Trade WebSocket stream now returns a
8 February 2022
- Added the FULL_ORDERBOOK_UPDATE Trade WebSocket stream. Please note that this is an alpha feature and may change in ways that are not backwards-compatible. We value any feedback! Please send your feedback to email@example.com
The following APIs now include a
"SequenceNumber"field on the returned order book:
14 December 2021
Added the Wire Transfers API to facilitate USD wire bank accounts deposits and withdrawals. (
Added the VALR Pay API (
/v1/pay) for initiating payments, getting payment details and history.
Added the Deposit Reference API to enable retrieval of Deposit reference by subaccounts.(
31 October 2021
- Added the following APIs for interaction with subaccounts:
account/balances/all) - returns all non zero balances for the portfolio.
account/subaccounts) - returns all subaccounts that belong to a primary account.
account/subaccount) - register a new subaccount.
account/subaccounts/transfer) - transfer between subaccounts.
Authenticationsection to include the
X-VALR-SUB-ACCOUNT-IDheader for subaccount impersonation.
- Updated the rate limit for authenticated API calls.
15 September 2021
Added the Current API Key Information API (
/account/api-keys/current) which returns the currently authorised API key's information and permissions.
23 August 2021
- Batch Orders API (Alpha) is now available to batch multiple exchange orders.
- Added additional transaction types to transaction history.
PAYMENTtransaction types including:
Off-chain transaction types including:
- VALR Pay
- A Stop Limits API (
/orders/stop/limit) is now available to place
- Limit Orders (
POSTrequest now accepts
timeInForceas an optional parameter (
- Time in Force (
IOC) field is now included in
GETresponses of the following APIs:
- Open Order (
- Order History (
- Order Status (
- Open Order (
- New order types of:
TAKE_added to applicable Currency Pairs (currently BTCZAR, ETHZAR and XRPZAR) for the following Public APIs:
- Public Order Types (
- Public Currency Pairs (
- Public Order Types (
- Updated example for Public Currency pairs (
/public/pairs) API with fields
baseDecimafor each traded currency pair.
- Updated example for for all TransactionId API requests (
/account/transactionhistory) with the
idfield in the response
- Updated documentation for Trade History API (
- Updated example for MarketData Trade History API (
/marketdata/:currencyPair/) with the
- The Order API (/orders/open) now includes the following fields in GET responses:
updatedAt, status, type
- Updated the Order History APIs (/orders/history) to include the feeCurrency field
- Updated documentation: Updated the examples for Order History Detail APIs (/orders/history/detail/*) to include the fields:
- Crypto withdrawals created (/wallet/crypto/:currencyCode/
withdraw) with more decimals than the number of decimals supported by the currency will be truncated
- The Currencies list (/public/currencies) now include the following new fields:
- Withdrawal Info (/wallet/crypto/:currencyCode/
withdraw) now includes the following new field:
- Trade History for a currency pair (/account/:currencyPair/
tradehistory) can now be filtered by the skip, limit, startTime, endTime and beforeId parameters. This is similar to Transaction History filtering.
- Asks & Bids on ZAR Orderbooks: The number of Asks and Bids sent via our Order Book APIs has been increased from 20 each to 40 each.
Order History Detail APIs (`/orders/history/detail/*`) now include the following new fields:
- Rate limiting: Rate limit has been updated to 120 calls per 1 minute window. When rate limited, a response code of 429 and a response header of `x-valr-ratelimited: true` will be returned.
- Example 1: You are allowed to do 120 calls from 10:10:00 to 10:10:59. When the time changes to 10:11:00, the counter will be reset and will start over.
- Example 2: If the first request comes in at 10:10:30, the counter will be reset at 10:11:00
- Separated the API and Website web socket sessions. WebSockets which were connected via the API will no longer be closed when the user logs out of the VALR website.
- When a `PING` message is received on the Trade WebSocket, a response with `NO_SUBSCRIPTIONS` in the `PONG` will be sent, if the user has not subscribed to any message types.
- When a user connects and authenticates to the Account WebSocket, all account balances and open orders associated with the user account will be sent in the response. One `BALANCE_UPDATE` message for each asset held and one `OPEN_ORDERS_UPDATE` message containing all open orders on the account, across all order books will be sent.
- The `BALANCE_UPDATE` web socket message now includes an `updatedAt` field.
- The REST GET Balances response (`https://api.valr.com/v1/account/balances`) now includes an `updatedAt` field for each asset held.
- Added the REST GET VALR Status (`https://api.valr.com/v1/public/status`) request which will indicate whether the API is "online" or in "read-only" mode. In "read-only" mode, only GET and OPTIONS requests are accepted. The "read-only" mode is sometimes necessary during maintenance.
- The `filledPercentage` field on open orders is now accurate to two decimal places.
- The REST GET Order Book (`https://api.valr.com/v1/marketdata/:currencyPair/orderbook`) response and the REST GET Order Book (Non aggregated) (`https://api.valr.com/v1/marketdata/:currencyPair/orderbook/full`) response now include a `LastChange` field, indicating the timestamp of the last update to the order book.
- The `AGGREGATED_ORDERBOOK_UPDATE` message on the Trade web socket now includes a `LastChange` field, indicating the timestamp of the last update to the order book.