Welcome to ChangeNOW API! It is an effective and convenient way to increase the features of your service. You can easily integrate the system of cryptocurrency exchange without any hassle.

ChangeNOW API is built for developers and is followed with detailed technical documentation. It operates with HTTPS protocol and provides a number of methods for the queries to be placed and the responses to be returned for each operation. All the responses are delivered through JSON API format.

We are always happy to hear your suggestions and feedback. Please address all your queries to our development team at [email protected]

API Documentation

List of available currencies

This API endpoint returns the list of available currencies. Some currencies get enabled or disabled from time to time, so make sure to refresh the list occasionally.

GET /api/v1/currencies

Query params:

active (Optional): Set true to return only active currencies

Successful response:

[ { "ticker": "btg", "image": "https://changenow.io/images/coins/btg.svg", "hasExternalId": false, "isFiat": false, "featured": false }, { "ticker": "btc", "image": "https://changenow.io/images/coins/btc.svg", "hasExternalId": false, "isFiat": false, "featured": false }, { "ticker": "eth", "image": "https://changenow.io/images/coins/eth.svg", "hasExternalId": false, "isFiat": false, "featured": false } ]

List of available currencies for exact currency

GET /api/v1/currencies-to/:ticker

Query params:

ticker : (Required) Currency ticker

Successful response:

[ { "ticker": "btc", "image": "https://changenow.io/images/coins/btc.svg", "hasExternalId": false, "isFiat": false, "featured": false }, { "ticker": "eth", "image": "https://changenow.io/images/coins/eth.svg", "hasExternalId": false, "isFiat": false, "featured": false } ]

Minimal exchange amount

The API endpoint returns minimal payment amount required to make an exchange. If you try to exchange less, the transaction will most likely fail.

GET /api/v1/min-amount/:from_to

Params:

from_to: Underscrore separated pair of tickers

Successful response:

{ minAmount: 0.005 }

Estimated exchange amount

This API endpoint returns estimated exchange amount of coins to be received on the exchange.

GET /api/v1/exchange-amount/:send_amount/:from_to

Params:

amount: Amount of fund you want to exchagne (example: 1.314452) from_to: Underscore separated pair of tickers

Successful response:

{ estimatedAmount: "21.827315", transactionSpeedForecast: "5-45", networkFee: 0.006, warningMessage: null }

Transaction speed forecast is dash-separated min and max estimated time in minutes

Create exchange transaction

The API endpoint generates an address for sending funds and returning transaction attributes.

POST /api/v1/transactions/:api_key

Params:

api_key: Your API key

Request params:

from (Required): Ticker of a currency you want to send to (Required): Ticker of a currency you want to receive address (Required): Address to receive a currency amount (Required): Amount you want to exchnage extraId (Optional): Extra Id for currencies that require it

Successful response:

{ id: "b712390255", payinAddress: "3GCKvrKXrJ7Efdrn2Ed6V82rVAQv8GMLaj", payoutAddress: "0x9d8032972eED3e1590BeC5e9E4ea3487fF9Cf120", payinExtraId: null, fromCurrency: "btc", toCurrency: "eth" }

Notice id in response, you can use it to get transaction status, read further how

List of transactions

The API endpoint returns transactions initiated by users. Transactions are sorted by the time they were last updated in descending order (i.e. status update time).

GET /api/v1/transactions/:api_key

Params:

api_key: Your API key

Query params:

from (Optional): Ticker of a payin currency to (Optional): Ticker if payout currency status (Optional): Transaction status (available statuses below) limit (Optional): Limit of transactions to return (default: 10) offset (Optional): Number of transactions to skip

Successful response:

[ { id: "b712390255", status: "finished", hash: "transactionhash", payinHash: "58eccbfb713d430004aa438a", payoutHash: "58eccbfb713d430004aa438a", payinAddress: "58eccbfb713d430004aa438a", payoutAddress: "0x9d8032972eED3e1590BeC5e9E4ea3487fF9Cf120", payinExtraId: "123456", payoutExtraId: "123456", fromCurrency: "btc", toCurrency: "eth", amountSend: "1.000001", amountReceive: "20.000001", networkFee: "0.000001", updatedAt: "2017-11-29T19:17:55.130Z" } ]

Possible transaction statuses

  • new
  • waiting
  • confirming
  • exchanging
  • sending
  • finished
  • failed
  • refunded
  • expired

Transaction status

This API endpoint returns single transaction status. Transaction id is taken from create transaction request.

GET /api/v1/transactions/:id/:api_key

Params:

id: Transaction id from create transaction request api_key: Your API key

Successful response:

{ id: "b712390255", status: "finished", hash: "transactionhash", payinHash: "58eccbfb713d430004aa438a", payoutHash: "58eccbfb713d430004aa438a", payinAddress: "58eccbfb713d430004aa438a", payoutAddress: "0x9d8032972eED3e1590BeC5e9E4ea3487fF9Cf120", payinExtraId: "123456", payoutExtraId: "123456", fromCurrency: "btc", toCurrency: "eth", amountSend: "1.000001", amountReceive: "20.000001", networkFee: "0.000001", updatedAt: "2017-11-29T19:17:55.130Z" }

Possible transaction statuses are listed in list transactions method

Live transaction updates

API provides socket.io endpoint to subscribe to transactions status update events.

Sample usage example with JavaScript:

var socket = io('https://changenow.io/'); socket.on('connect', function(){ socket.emit( "subscribe", { apiKey: "your-api-key", } ); }); socket.on("transaction-status", function(data) { console.log('transaction update: ', data.transaction); });

Sample event payload:

{ transaction: { id: "b712390255", status: "finished", hash: "transactionhash", payinHash: "58eccbfb713d430004aa438a", payoutHash: "58eccbfb713d430004aa438a", payinAddress: "58eccbfb713d430004aa438a", payoutAddress: "0x9d8032972eED3e1590BeC5e9E4ea3487fF9Cf120", payinExtraId: "123456", payoutExtraId: "123456", fromCurrency: "btc", toCurrency: "eth", amountSend: "1.000001", amountReceive: "20.000001", networkFee: "0.000001", updatedAt: "2017-11-29T19:17:55.130Z" } }

Possible transaction statuses are listed in list transactions method

Scam identification

API has a built-in scam identification. All the submitted crypto services will be subject to scam checking. The method will respond with “true” or “false” according to the status service.

GET /api/v1/scam-check/:site

Params:

site: Site to examine (i.e. changenow.io)

Successful response:

{ scam: false }

Libraries

Libraries that can be used for easy integration with the ChangeNOW API.

Generate API key

Start creating integrations using changenow.io API. To access ChangeNOW API sign up for the Affiliate program. Available at the click of a button!