Back to top

faast SWAP API

faast logo

  • Current Version: 0.11

  • For changes, see History

This document describes the faast REST-like API to be used to easily convert between any cryptocurrency.

Introduction

Overview

The goal of the faast API is to provide an instant, and secure method to convert from one cryptocurrency to another. To achieve this, a user specifies which currency they possess (deposit currency), and which currency they would like to obtain (withdrawal currency), as well as a wallet address for the currency they would like to obtain.

The faast API then generates a unique deposit wallet address for the “deposit currency”, where the user can send any arbitrary amount of cryptocurrency. Upon noticing any transaction on this deposit address faast will immediately fullfill an order at the current market rate, and send an equivalent amount of “withdrawal currency” to the users specified “wallet address”.

faast never takes custody of users cryptocurrency, and has no user account system. It is designed for instant, safe, and secure conversion in between any arbitrary set of cryptocurrencies.

Basic flow

Order creation:

  1. Get a current price/rate (varies in real time with market)

  2. Generate an order and deposit address

  3. Send cryptocurrency to the deposit address

  4. Monitor the status for completion

Fixed pricing vs Variable Pricing

Faast provides two forms of pricing: fixed and variable. When using fixed pricing, an order is created expecting a specific deposit amount in return for a specific withdrawal amount. When using variable pricing, any arbitrary amount can be deposited, and an equivalent withdrawal amount will be calculated using the prevailing exchange rate at the time the deposit is received. This model provides optimal user experience, as well as developer flexibility.

Fixed Pricing

The faast api is inherently asynchronous. There will always be a time lag in-between the time that a swap is created, and a deposit is send for that specific swap. Given the volatility of cryptocurrency markets, even these short delays can cause pricing discrepancies, and as a result, poor user experience.

For this reason, faast provides a “fixed pricing” option when creating a swap. Faast will guarantee the price quoted back in the response assuming the deposit is received before the expiry period. To provide the best experience with fixed pricing, timing is paramount.

How to create a fixed price swap

When calling the /swap endpoint, ensure a deposit_amount is specified, and the generated swap will return a price based on the market depth at the time of the request. The response will contain a price and price_locked_until parameters.

A deposit from the customer must be received before price_locked_until, and match the deposit_amount expected to ensure the price will honored. In the off chance that signing a transaction takes longer than expected, the /swaps/refresh endpoint can be called to refresh the price and re-quote based on an updated market rate.

All transactions are considered “received” when they are detected by a blockchain node on the faast network. Transactions do not need to be “confirmed” or in a “block” to be considered “received”.

Variable pricing

Variable pricing allows for more flexibility, in that users can deposit any amount and receive an equivalent payout based on the prevailing rate at the time the deposit is received.

Given that the API does not know the exact deposit amount, it is impossible to accurately estimate the price of the swap beforehand (due to market depth issues on most cryptocurrencies). For this reason, the specific price of the swap will be quoted when a deposit is received by one of the blockchain nodes on the faast network.

To create a variable price swap, simply omit the deposit_amount when calling the /swap endpoint.

Affiliate Program

Question: Why should I integrate with the faast API and not XYZ API?

Answer: Faast provides the best opportunity for revenue generation as an API integrator.

Earn revenue today by integrating the Faast swap API into your product or service! No sign up is required, and payouts are instant!

Faast allows API integrators to quickly and easily earn revenue by setting a specific percentage of each swap they would like to earn as a commission. Contrary to competitive implementations, the faast affiliate program allows the developer to choose the exact commission they would like to earn.

All earned commission is paid in Bitcoin to the developers specified Bitcoin address. Affiliate payouts are paid in batches after the affiliate commission amount has reached 0.01BTC.

How it works:

When generating a swap on behalf of a customer, simply add the affiliate_margin and affiliate_payment_address field to the request API.

Then, when the customer deposits funds for the swap, the following will happen:

  1. The price the customer is quoted will be adjusted down by affiliate_margin
  2. An equivalent amount of Bitcoin (deposit_amount * affiliate_margin) will be withheld for an affiliate payout
  3. The customer will receive their withdrawal_currency payout
  4. After the total affiliate payout for a specific affiliate_payment_address reaches 0.01BTC, it will automatically be sent in a bitcoin transaction.

Affiliate margin

The affiliate margin is a percentage (from 0 to 5) an affiliate would like to charge its customers. Faast prices its swaps based on the prevailing rates on the market, plus an approximate 0.5% fee. Affiliate margins are applied on-top of faast’s native fee.

It is suggested that affiliates make clear to their users the affiliate margin being applied to a swap. The recommended margin is 0.5%, but affiliates are welcome to vary this rate based on business opportunities and application.

Affiliate payment address

Affiliates are recommended to use a single affiliate payment address to simplify accounting. To minimize blockchain bloating, affiliate payouts will be made after the total affiliate commission for a specific address reaches 0.01 BTC.

Affiliate payment addresses must be Bitcoin addresses. If an affiliate prefers to receive their payouts in a different currency, there is a solution! Simply create a variable-rate BTC -> Currency swap using the faast API, and use the BTC deposit address as an affiliate_payment_address. Every time an affiliate payout is sent, it will automatically be converted to the desired payout currency.

Integration Testing

faast provides a staging server that can be used for integration testing. It provides the same API, but with the following differences:

  • It uses the TestNet bitcoin and ethereum (ropsten) test network, and thus expects testnet addresses and coins (eg. mqdofsXHpePPGBFXuwwypAqCcXi48Xhb2f)

  • ERC20 Tokens are all a single custom faast Token on ropsten address: 0xe72bbed5cf09686c62ed5be8f571a7670c11c468

  • testnet coins may or may not be sent to the testnet address provided, depending on how our staging servers are configured

The testing base url is https://testapi.faa.st

Authentication

The majority of the faast APIs have no authentication requirement. The /affiliate APIs are the exception to this, for privacy reasons. Authentication is accomplished through the use of a shared key and secret, used to sign requests. An API key and secret can be obtained through the /affiliate/register API.

Each request must provide the following headers:

  • key - API key provided by you

  • nonce - an integer value appended to the body when generating the HMAC

  • signature - output of the HMAC algorithm

Node.js example:

const requestJSON = JSON.stringify({ ... })
const nonce = String(Date.now())
const signature = crypto
  .createHmac('sha256', 'secret')
  .update(requestJSON + nonce)
  .digest('hex')

request.post({
  url: 'https://testapi.faa.st',
  headers: {
    key: API_KEY,
    nonce: nonce,
    signature: signature
  },
  json: requestJSON
}, function(err, res, body) { ... }

Base URL

Production

The production base URL is https://api.faa.st

Test

The test base URL is https://testapi.faa.st

Swap Requests

Swap statuses

  1. awaiting deposit - initial state after a swap has been created

  2. received - deposit has been processed

  3. awaiting network confirmation - waiting for confirmations of the deposit

  4. complete - swap has completed

  5. cancelled - no deposit was found

The normal flow for a swap is through the first four statuses in that order. A swap may be cancelled if no valid deposit is seen after a reasonable time period, but note that if a deposit does arrive at the address later on, it will be re-priced and processed.

Create

Create
POST/api/v2/public/swap

Create a new swap order, and generate a deposit address.

Example URI

POST /api/v2/public/swap
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "user_id": "my_user_id_992", (optional, user provided ID to be used for historical order lookups)
  "deposit_amount": 0.02, (optional, specify amount for a fixed price swap)
  "deposit_currency": "ETH",
  "withdrawal_address": "0xf9357f4fdef81103ed55296649a7cacf04e80ef3",
  "withdrawal_currency": "BAT",
  "refund_address": "0xf9357f4fdef81103ed55296649a7cacf04e80ef3", (optional, address to send a refund if there are any issues)
  "affiliate_margin": 5, (optional, decimal from 0.0 to 5.0)
  "affiliate_payment_address": "mqdofsXHpePPGBFXuwwypAqCcXi48Xhb2f" (optional, Bitcoin address)
  "fresh_deposit_address": false (optional, return a new deposit address even if this currency pair and withdrawal address combination have already been used)
}
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "swap_id": "30711734-e4ee-4ff1-a45b-4020cef8488b",
  "user_id": "my_user_id_992",
  "created_at": "2018-08-17T18:08:59.004Z",
  "deposit_address": "0x94fa1b52E7B6282dad0213e17A8BF7B2538b4b1E",
  "deposit_amount": 0.02,
  "deposit_currency": "ETH",
  "spot_price": 0.03399216,
  "price": 0.035870226,
  "price_locked_at": "2018-08-17T18:08:58.829Z",
  "price_locked_until": "2018-08-17T18:23:58.829Z",
  "withdrawal_address": "0x3d6Bb40C0dDe451812A935163cC57974063b8dA3",
  "withdrawal_currency": "BNB"
}

Fetch

Fetch
GET/api/v2/public/swaps/{swapId}

Get the status of a swap by its ID.

Example URI

GET /api/v2/public/swaps/3f1c1a39...
URI Parameters
HideShow
swapId
string (required) Example: 3f1c1a39...

swap_id from Create swap response

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "swap_id": "3f1c1a39-de8f-457d-ae2f-11383acd9403",
  "created_at": "2018-08-16T20:04:48.950Z",
  "updated_at": "2018-08-17T22:14:54.620Z",
  "user_id": "my_user_id_992",
  "deposit_address": "0x94fa1b52E7B6282dad0213e17A8BF7B2538b4b1E",
  "deposit_amount": 0.02,
  "deposit_currency": "ETH",
  "spot_price": 0.03375493,
  "price": 0.03731607000000001,
  "price_locked_at": "2018-08-17T22:14:54.619Z",
  "price_locked_until": "2018-08-17T22:29:54.619Z",
  "withdrawal_address": "0x3d6Bb40C0dDe451812A935163cC57974063b8dA3",
  "withdrawal_amount": 0.53596212,
  "withdrawal_currency": "BNB",
  "refund_address": null,
  "status": "awaiting deposit"
}

Fetch/Refresh

Fetch/Refresh
POST/api/v2/public/swaps/{swapId}/refresh

Get the status of a swap by its ID. If the guaranteed price has expired, a new price will be set.

Example URI

POST /api/v2/public/swaps/3f1c1a39.../refresh
URI Parameters
HideShow
swapId
string (required) Example: 3f1c1a39...

swap_id from Create swap response

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "swap_id": "3f1c1a39-de8f-457d-ae2f-11383acd9403",
  "created_at": "2018-08-16T20:04:48.950Z",
  "updated_at": "2018-08-17T22:14:54.620Z",
  "user_id": "my_user_id_992",
  "deposit_address": "0x94fa1b52E7B6282dad0213e17A8BF7B2538b4b1E",
  "deposit_amount": 0.02,
  "deposit_currency": "ETH",
  "spot_price": 0.03375493,
  "price": 0.03731607000000001,
  "price_locked_at": "2018-08-17T22:14:54.619Z",
  "price_locked_until": "2018-08-17T22:29:54.619Z",
  "withdrawal_address": "0x3d6Bb40C0dDe451812A935163cC57974063b8dA3",
  "withdrawal_amount": 0.53596212,
  "withdrawal_currency": "BNB",
  "refund_address": null,
  "status": "awaiting deposit"
}

Provide Deposit Info

Provide Deposit Info
POST/api/v2/public/swaps/{swapId}/deposit

Save the deposit transaction hash into the swap record. It will be provided in the response as deposit_tx_id.

Example URI

POST /api/v2/public/swaps/3f1c1a39.../deposit
URI Parameters
HideShow
swapId
string (required) Example: 3f1c1a39...

swap_id from Create swap response

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "tx_id": "0xasdf..."
}
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "swap_id": "3f1c1a39-de8f-457d-ae2f-11383acd9403",
  "created_at": "2018-08-16T20:04:48.950Z",
  "updated_at": "2018-08-17T22:14:54.620Z",
  "user_id": "my_user_id_992",
  "deposit_address": "0x94fa1b52E7B6282dad0213e17A8BF7B2538b4b1E",
  "deposit_tx_id": "0xasdf...",
  "deposit_amount": 0.02,
  "deposit_currency": "ETH",
  "spot_price": 0.03375493,
  "price": 0.03731607000000001,
  "price_locked_at": "2018-08-17T22:14:54.619Z",
  "price_locked_until": "2018-08-17T22:29:54.619Z",
  "withdrawal_address": "0x3d6Bb40C0dDe451812A935163cC57974063b8dA3",
  "withdrawal_amount": 0.53596212,
  "withdrawal_currency": "BNB",
  "refund_address": null,
  "status": "awaiting deposit"
}

Query Requests

Get A Price

Get A Price
GET/api/v2/public/price/{pair}

This will return a price for a selected currency pair

Example URI

GET /api/v2/public/price/"BTC_ETH"
URI Parameters
HideShow
pair
string (required) Example: "BTC_ETH"

The pair is depositCurrency_withdrawalCurrency.

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "pair": "BTC_ETH",
  "price": 0.04726611,
  "deposit_amount": 0,
  "minimum_deposit": 0.00028219
}

Get Supported Currencies

Get Supported Currencies
GET/api/v2/public/currencies

This will return a list of supported cryptocurrencies on faast. Make close note of the returned deposit and receive fields. deposit indicates if swaps can be created with the currency as the deposit_currency. receive indicates if the specific currency can be set as the withdrawal_currency in a swap.

Example URI

GET /api/v2/public/currencies
Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
[
  {
    "name": "Bitcoin",
    "symbol": "BTC",
    "walletUrl": "https://copay.io",
    "deposit": true,
    "receive": true,
    "infoUrl": "https://bitcoin.org",
    "decimals": 8,
    "cmcID": "bitcoin",
    "iconUrl": "https://api.faa.st/api/v1/public/static/img/coins/icon_BTC.png"
  },
  {
    "name": "Ethereum",
    "symbol": "ETH",
    "walletUrl": "https://faa.st",
    "deposit": true,
    "receive": true,
    "infoUrl": "https://ethereum.org",
    "decimals": 18,
    "cmcID": "ethereum",
    "iconUrl": "https://api.faa.st/api/v1/public/static/img/coins/icon_ETH.png"
  },
  {
    "name": "Augur",
    "validate": "ETH",
    "symbol": "REP",
    "walletUrl": "https://faa.st",
    "deposit": true,
    "receive": true,
    "ERC20": true,
    "infoUrl": "https://etherscan.io/token/0x1985365e9f78359a9B6AD760e32412f4a445E862",
    "contractAddress": "0x1985365e9f78359a9B6AD760e32412f4a445E862",
    "decimals": 18,
    "cmcID": "augur",
    "iconUrl": "https://api.faa.st/api/v1/public/static/img/coins/icon_REP.png"
  }, ...
]

Get A Supported Currency

Get A Supported Currency
GET/api/v2/public/currencies/{currency}

This will return info about a given supported currency.

Example URI

GET /api/v2/public/currencies/"BTC"
URI Parameters
HideShow
currency
string (required) Example: "BTC"

currency to retrieve info for

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "name": "Bitcoin",
  "symbol": "BTC",
  "walletUrl": "https://copay.io",
  "deposit": true,
  "receive": true,
  "infoUrl": "https://bitcoin.org",
  "decimals": 8,
  "cmcID": "bitcoin",
  "iconUrl": "https://api.faa.st/api/v1/public/static/img/coins/icon_BTC.png"
}

Get all prices

Get all prices
GET/api/v2/public/price/all{?format}

This will return pricing info for all currencies in either object (“dict”) or “list” format. Suggested maximum deposit and withdrawal amounts are provided per currency.

Example URI

GET /api/v2/public/price/all?format="dict"
URI Parameters
HideShow
format
string (required) Example: "dict"

(optional) “dict” or “list” (default “dict”)

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "minimum_deposits": {
    "BAT": 18.67064974,
    "BTC": 0.00040536,
    "ETH": 0.01457336,
    "TUSD": 3.30425588,
    "ZRX": 4.60574797
  },
  "maximum_deposits": {
    "BAT": 701821,
    "BTC": 100,
    "ETH": 1421,
    "TUSD": 80881,
    "ZRX": 132395
  },
  "maximum_withdrawals": {
    "BAT": 225742,
    "BTC": 100,
    "ETH": 1792,
    "TUSD": 82944,
    "ZRX": 58200
  },
  "prices": {
    "BAT": {
      "BTC": 37528.00597461,
      "ETH": 1288.22461165,
      "TUSD": 5.71288835,
      "ZRX": 4.10593914
    },
    "BTC": {
      "BAT": 0.000027,
      "ETH": 0.03449866,
      "TUSD": 0.00015299,
      "ZRX": 0.00010996
    },
    "ETH": {
      "BAT": 0.00078709,
      "BTC": 29.29245176,
      "ETH": 13018.36041509,
      "TUSD": 57.73250944,
      "ZRX": 41.49322641
    },
    "TUSD": {
      "BAT": 0.17845856,
      "BTC": 6641.55432197,
      "ETH": 227.98476804,
      "ZRX": 0.72665246
    },
    "ZRX": {
      "BAT": 0.24875046,
      "BTC": 9257.55342667,
      "ETH": 317.78422163,
      "TUSD": 1.40927736
    }
  }
}

Query Swaps

Query Swaps
GET/api/v2/public/swaps{?user_id,withdrawal_address,page,limit}

Query swaps by withdrawal address or provided User ID. Results are paginated. “total” is the total matching results for the entire query.

Example URI

GET /api/v2/public/swaps?user_id="presidentofbitcoin"&withdrawal_address="0x33ec06a42f7d6b4ceca597edaf28ff1580b283df"&page=5&limit=10
URI Parameters
HideShow
user_id
string (required) Example: "presidentofbitcoin"

find swaps for a given client-provided user ID

withdrawal_address
string (required) Example: "0x33ec06a42f7d6b4ceca597edaf28ff1580b283df"

find swaps for a given withdrawal address

limit
string (required) Example: 10

number of results returned per pagination page

page
string (required) Example: 5

page number of paginated results to return

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "total": 1,
  "orders": [
    {
      "swap_id": "ab0d3433-723a-4b6e-8c1c-a487103c1eb1",
      "user_id": "my_user_id_992",
      "created_at": "2018-08-17T16:25:47.659Z",
      "updated_at": "2018-08-17T17:01:14.130Z",
      "deposit_address": "0x94fa1b52E7B6282dad0213e17A8BF7B2538b4b1E",
      "deposit_amount": 0.02,
      "deposit_currency": "ETH",
      "spot_price": 0.03435726,
      "price": 0.037981955000000005,
      "price_locked_at": "2018-08-17T16:25:47.650Z",
      "price_locked_until": "2018-08-17T16:40:47.650Z",
      "withdrawal_address": "0x3d6Bb40C0dDe451812A935163cC57974063b8dA3",
      "withdrawal_currency": "BNB",
      "withdrawal_amount": 1.16252102,
      "status": "complete",
      "amount_deposited": 0.04,
      "amount_withdrawn": 1.16252102,
      "transaction_id": "0x849cfa8edde231c50cab8a4a3a2a1c8530797c870ef28b189cd5b58d63eb2ac2"
    }
  ]
}

Affiliate

Register

Register
POST/api/v2/public/affiliate/register

Register an API key for a given affiliate_payment_address. The response will contain a secret which must be used to sign requests (see Authentication section). Note that it is not necessary to register an affiliate address before it is used in swaps, but that the private /affiliate APIs cannot be accessed until the address has been registered.

Example URI

POST /api/v2/public/affiliate/register
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "key": "my_api_key", (user provided key)
  "affiliate_payment_address": "mqdofsXHpePPGBFXuwwypAqCcXi48Xhb2f" (Bitcoin address for payouts)
  "contact_email": "[email protected]" (email address for support outreach)
}
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "key": "my_api_key",
  "secret": "2f03aa6c02061447560b9880bc4924ea2435",
  "affiliate_payment_address": "mqdofsXHpePPGBFXuwwypAqCcXi48Xhb2f",
  "contact_email": "[email protected]"
}

Query Affiliate Payouts

Query Affiliate Payouts
GET/api/v2/public/affiliate/payouts{?cursor,limit,status}

NOTE: This API must be authenticated using an API key and secret obtained through the /affiliate/register API.

Query for affiliate payout information. Results are paginated. “total” is the total matching results for the entire query.

Example URI

GET /api/v2/public/affiliate/payouts?cursor="asdf..."&limit=10&status="paid"
URI Parameters
HideShow
status
string (required) Example: "paid"

(optional) “pending” or “paid”

limit
string (required) Example: 10

number of results returned per pagination page

cursor
string (required) Example: "asdf..."

cursor for obtaining next page of results

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "count": 2,
  "limit": 10,
  "cursor": "asdf...",
  "records": [
    {
      "created": "2018-10-02T17:23:07.632Z",
      "updated": "2018-10-02T17:23:51.541Z",
      "address": "msDLdZWQd7HJKGqQyw2TDiCGWjTqjYG2dh",
      "amount": 0.07790316,
      "currency": "BTC",
      "status": "paid",
      "tx_hash": "b6bea2f494b312d004d646a9ecc79c37359ffa9b04366ba6598079c830e49df0"
    },
    {
      "created": "2018-09-28T20:27:51.744Z",
      "updated": "2018-09-28T20:28:11.894Z",
      "address": "msDLdZWQd7HJKGqQyw2TDiCGWjTqjYG2dh",
      "amount": 0.07790316,
      "currency": "BTC",
      "status": "pending"
    }
  ]
}

Get Affiliate Stats

Get Affiliate Stats
GET/api/v2/public/affiliate/stats{?start,end}

NOTE: This API must be authenticated using an API key and secret obtained through the /affiliate/register API.

Get statistics related to the registered affiliate address, including total swaps, total value, and affiliate payout totals.

Example URI

GET /api/v2/public/affiliate/stats?start="1540324997035",&end="1540324997036",
URI Parameters
HideShow
start
restrict stats to period starting at date (msec) (optional) Example: "1540324997035",
end
restrict stats to period end at date (msec) (optional) Example: "1540324997036",
Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json; charset=utf-8
Body
{
  "date": "2018-10-23T16:03:46.743Z",
  "address": "mqdofsXHpePPGBFXuwwypAqCcXi48Xhb2f",
  "totals": {
    "swaps_created": 34,
    "swaps_completed": 16,
    "value_usd": 0,
    "value_btc": 0,
    "affiliate_payouts_usd": 0,
    "affiliate_payouts_btc": 0,
    "by_currency": {
      "BNB": {
        "swaps_completed": 8,
        "value_currency": 0,
        "value_usd": 0,
        "value_btc": 0,
        "affiliate_payouts_usd": 0,
        "affiliate_payouts_btc": 0,
        "deposits": {
          "swaps_completed": 4,
          "value_currency": 0,
          "value_usd": 0,
          "value_btc": 0,
          "affiliate_payouts_usd": 0,
          "affiliate_payouts_btc": 0
        },
        "withdrawals": {
          "swaps_completed": 4,
          "value_currency": 0,
          "value_usd": 0,
          "value_btc": 0,
          "affiliate_payouts_usd": 0,
          "affiliate_payouts_btc": 0
        }
      },
      "ETH": {
        "swaps_completed": 8,
        "value_currency": 0,
        "value_usd": 0,
        "value_btc": 0,
        "affiliate_payouts_usd": 0,
        "affiliate_payouts_btc": 0,
        "deposits": {
          "swaps_completed": 4,
          "value_currency": 0,
          "value_usd": 0,
          "value_btc": 0,
          "affiliate_payouts_usd": 0,
          "affiliate_payouts_btc": 0
        },
        "withdrawals": {
          "swaps_completed": 4,
          "value_currency": 0,
          "value_usd": 0,
          "value_btc": 0,
          "affiliate_payouts_usd": 0,
          "affiliate_payouts_btc": 0
        }
      }
    }
  },
  "terms": "https://faa.st/terms"
}

History

Version 0.1:

  • Add currently supported APIs

  • GET rate

  • GET txStat

  • POST shift

  • Add initial list of supported Deposit and withdrawal Currencies

Version 0.2:

  • Removed list of supported currencies from doc, use v1 currencies API to get currency list

  • Removed /shift

  • Removed /txStat

  • Add initial v2 APIs

  • GET price

  • GET swaps

  • POST swap

  • POST swap/refresh

Version 0.2.1:

  • Fixed lack of URI parameter in refresh API

Version 0.3.0:

  • added GET swap

Version 0.4.0:

  • added GET /affiliate/:address/payouts

Version 0.5.0:

  • added GET /price/all

  • added GET /affiliate/:address/stats

  • fixed affiliate payouts documentation to include cursor

Version 0.6.0:

  • added POST /swap/deposit

Version 0.7.0:

  • /affiliate/stats and /affiliate/payouts now require authentication

  • added POST /affiliate/register for obtaining api keys

Version 0.8.0:

  • /affiliate/stats response format has changed

  • /affiliate/stats can be restricted by start/end date

Version 0.9.0:

  • /swap: added new fresh_deposit_address parameter

  • added description of swap status values

Version 0.10.0:

  • removed affiliate_payment_address and affiliate_margin from swap responses

Version 0.11.0:

  • added maximum_deposits and maximum_withdrawals to price/all API

Generated by aglio on 12 Nov 2018