NAV Navbar

General

This documentation explains how to interact with the LGO Markets trading platform through API endpoints and websockets. That includes trading functionalities, market data feeds, and accounting operations.

This documentation assumes you will use the LGO Proxy to connect to the platform. You can also use the LGO JavaScript SDK.

Sandbox

A sandbox environment is accessible upon request for testing purposes. The LGO Markets team will credit your sandbox account with test funds.

Authentication

Proxy

To prevent price manipulation and front running, LGO Markets requires the content of trading actions to be encrypted using strong cryptography. This is done via the LGO Proxy that you need to run to connect to our systems.

This mechanism ensures that no one knows the content of your orders before they reach the matching engine. Not even LGO Markets knows about your trading actions until last moment. It guarantees fairness, transparence and full immutable audit, this process is described in details here.

The LGO Proxy handles the encryption for you so that your integration with our platform is made easier with less custom code for the encryption.

LGO Proxy

Run with Docker

You will need Docker to be installed.

Use the available docker image

Docker image is available on official registry: https://hub.docker.com/r/lgopublic/lgo-proxy.

We encourage you to use a specific tag instead of latest one.

For examples below we will use v1.1.4 as tag.

docker pull lgopublic/lgo-proxy:v1.1.4

Build the image

You can alternatively build the image yourself.

git clone https://gitlab.com/lgo_public/lgo-proxy
cd lgo-proxy
git checkout -b v1.1.4
docker build . -t lgopublic/lgo-proxy:v1.1.4

Run the command to build a docker image.

Initialize the proxy

Note that you can skip this step if LGO Markets already provided you with an API access key for your host.

docker run \
  --rm \
  -v <your_tokens_location>:/var/lib/softhsm/tokens \
  -e LGO_SIGNER_PIN=<your_pin> \
  lgopublic/lgo-proxy:v1.1.4 \
  init

Decide on a PIN# and use it in place of <your_pin> in this command line. Remember the PIN# as you will reuse it to start the server in the next step.

Also, replace <your_tokens_location> with your local LGO Proxy host directory.

The command line will return your public key, you will have to provide it to the LGO Markets team. In return, the LGO Markets team will provide you with your API access key.

Start the proxy server

Once you get your API access key from LGO Markets, start the LGO Proxy by running this command line.

docker run \
  -d \
  -v <your_tokens_location>:/var/lib/softhsm/tokens \
  -e LGO_SIGNER_PIN=<your_pin> \
  -e LGO_ACCESS_KEY=<your_access_key> \
  -e LGO_ENV=markets-production \
  --restart=on-failure \
  --name lgo-proxy \
  -p 127.0.0.1:3002:3002 \
  lgopublic/lgo-proxy:v1.1.4 \
  start

Replace <your_tokens_location> with your local LGO Proxy host directory. Replace <your_pin> with same PIN# as decided earlier. Replace <your_access_key> with the provided API access key.

Note that the token used by the LGO Proxy will be stored in <your_tokens_location>. Meaning, it may be useful to backup those data if you want to keep using the same API access key and public key.

You may use or not the provided restart policy in example. See docker documentation for more details.

By default the proxy starts on production environment but you can target sandbox one. Just replace -e LGO_ENV=markets-production with -e LGO_ENV=markets-sandbox.

Proxy changelog

Latest release (2019-07-10)

Version: 1.1.4

1.1.4 (2019-07-10)

1.1.3 (2019-06-11)

1.1.1 (2019-05-14)

1.1.0 (2019-05-07)

1.0.8 (2019-04-24)

1.0.4 (2019-03-29)

1.0.3 (2019-03-20)

1.0.2 (2019-03-19)

1.0.1

1.0.0

Initial release.

WebSocket

Overview

Example: connect to the websocket using wscat

wscat -c ws://localhost:3002

Websocket is the recommended way to both receive realtime updates and place orders. Subscribing to the channels provides the fastest way to be updated about trading activity.

Subscribe

Request to subscribe to level2 updates on BTC-USD

{
  "type": "subscribe",
  "channels": [
    {
      "name": "level2",
      "product_id": "BTC-USD"
    }
  ]
}

Request to unsubscribe to level2 updates for BTC-USD

{
  "type": "unsubscribe",
  "channels": [
    {
      "name": "level2",
      "product_id": "BTC-USD"
    }
  ]
}

To receive updates from the platform, you must subscribe to specific channels.

To unsubscribe, send an unsubscribe message.

Batch Id

Most operations on LGO Markets are processed in batch. To detect message loss, you can check the batch_id and detect any missing sequence.

Channels

Different channels exist depending on your needs for realtime market data and/or realtime updates on your orders.

Market data level2 channel

Subscribe request

{
  "type": "subscribe",
  "channels": [
    {
      "name": "level2",
      "product_id": "BTC-USD"
    }
  ]
}

Snapshot response

{
  "payload": {
    "bids": [
      ["7998.3000", "6.21470000"],
      ["7998.1000", "2.14420000"],
      ["7997.8000", "6.08540000"]
    ],
    "asks": [
      ["8000.5000", "1.34970000"],
      ["8000.9000", "8.16290000"],
      ["8001.2000", "1.16220000"]
    ]
  },
  "batch_id": 776,
  "type": "snapshot",
  "channel": "level2",
  "product_id": "BTC-USD"
}

Update response

{
  "payload": {
    "bids": [],
    "asks": [["7000.0000", "2.00000000"]]
  },
  "batch_id": 777,
  "type": "update",
  "channel": "level2",
  "product_id": "BTC-USD"
}

Channel name: level2.

Use this channel to receive an initial view of the order book and subsequent updates. On subscribe, the server will first send a snapshot of the current order book, and then will send updates for every changes.

Bids and asks are arrays of tuples of price and quantity.

After receiving the initial snapshot, it is your responsibility to keep a local copy and modify it with subsequent updates in order to reflect the changes in the order book.

Trades channel

Subscribe request

{
  "type": "subscribe",
  "channels": [
    {
      "name": "trades",
      "product_id": "BTC-USD"
    }
  ]
}

Snapshot response

{
  "payload": [
    {
      "quantity": "1.00000000",
      "side": "S",
      "price": "100.0000",
      "trade_id": "222",
      "trade_creation_time": "2018-11-22T14:26:24.636Z"
    }
  ],
  "batch_id": 777,
  "type": "snapshot",
  "channel": "trades",
  "product_id": "BTC-USD"
}

Update response

{
  "payload": [
    {
      "quantity": "2.00000000",
      "side": "B",
      "price": "120.0000",
      "trade_id": "223",
      "trade_creation_time": "2018-11-22T14:27:23.735Z"
    },
    {
      "quantity": "0.50000000",
      "side": "S",
      "price": "153.0000",
      "trade_id": "224",
      "trade_creation_time": "2018-11-22T14:27:23.835Z"
    }
  ],
  "batch_id": 778,
  "type": "update",
  "channel": "trades",
  "product_id": "BTC-USD"
}

Channel name: trades.

Use this channel to receive the last trades of the platform for a given product. On subscribe, the server will first send a snapshot of the 100 last trades for the selected product, and then will send updates for every batch. The update is limited to the last 100 trades of the batch for the given product.

After receiving the initial snapshot, it is your responsibility to keep a local copy and modify it with subsequent updates. We recommend using a queue of size 100 for your local copy.

Channel for your orders status update

Subscribe request

{
  "type": "subscribe",
  "channels": [
    {
      "name": "user",
      "product_id": "BTC-USD"
    }
  ]
}

Snapshot response

{
  "payload": [
    {
      "quantity": "1.00000000",
      "order_creation_time": "2018-11-12T09:45:26.475Z",
      "side": "S",
      "remaining_quantity": "1.00000000",
      "order_id": "154201592647500001",
      "order_type": "L",
      "price": "7000.0000"
    },
    {
      "quantity": "1.00000000",
      "side": "S",
      "remaining_quantity": "1.00000000",
      "order_creation_time": "2018-11-12T10:24:54.091Z",
      "order_id": "154201829409100001",
      "order_type": "L",
      "price": "7000.0000"
    },
    {
      "quantity": "1.00000000",
      "side": "S",
      "remaining_quantity": "1.00000000",
      "order_id": "154201569423200001",
      "order_type": "L",
      "order_creation_time": "2018-11-12T09:41:34.232Z",
      "price": "7000.0000"
    }
  ],
  "batch_id": 793,
  "type": "snapshot",
  "channel": "user",
  "product_id": "BTC-USD"
}

Update response

{
  "payload": [
    {
      "quantity": "1.00000000",
      "time": "2018-11-12T10:24:54.091Z",
      "side": "S",
      "order_id": "154201829409100001",
      "type": "pending",
      "order_type": "L",
      "price": "7000.0000"
    },
    {
      "order_id": "154201829409100001",
      "time": "2018-11-12T10:24:57.104Z",
      "type": "open"
    },
    {
      "price": "8394.2000",
      "fees": "17.3424",
      "time": "2018-11-12T14:11:33.006Z",
      "trade_id": "2140",
      "type": "match",
      "liquidity": "M",
      "order_id": "154203187584200001",
      "filled_quantity": "4.13200000",
      "remaining_quantity": "4.61240000"
    }
  ],
  "batch_id": 794,
  "type": "update",
  "channel": "user",
  "product_id": "BTC-USD"
}

Update response for a done order because it has been filled

{
  "payload": [
    {
      "time": "2019-06-07T15:02:21.971Z",
      "reason": "filled",
      "type": "done",
      "order_id": "155991974107900001"
    }
  ],
  "batch_id": 4075955,
  "type": "update",
  "channel": "user",
  "product_id": "BTC-USD"
}

Update response for an invalid order because price is too precise

{
  "payload": [
    {
      "type": "invalid",
      "order_id": "155991999723800001",
      "time": "2019-06-07T15:06:38.428Z",
      "reason": "INVALID_PRICE_INCREMENT"
    }
  ],
  "batch_id": 4076081,
  "type": "update",
  "channel": "user",
  "product_id": "BTC-USD"
}

Channel name: user.

Use this channel to receive updates on your own orders for a specific product. This channel requires authentication and will use the current user.

The initial snapshot is a list of all your open orders.

The batch_id is the last batch_id generated by the platform.

Subsequent updates will notify you about changes of an order status, matches of your orders, and new orders accepted in a batch.

Type Description
pending Your order is part of a batch
invalid Your order has failed for the given reason
open Your order entered the order book
done Your order is fully filled or canceled
match Your order matched against a counterparty

When type is done reasons can be:

Reason Description
filled Your order has been fully filled
canceled Your order has been canceled by yourself
canceledBySelfTradePrevention Your order has been automatically canceled to prevent self trading
rejected Your order cannot enter order book (e.g. a market order)

When type is invalid reasons can be:

Reason Description
INVALID_QUANTITY The quantity min/max is not valid
INVALID_PRICE The price min/max is not valid
INVALID_AMOUNT The total min/max is not valid (e.g. price * quantity for a limit order)
INVALID_PRICE_INCREMENT The price precision is invalid (e.g. $7000.0001 instead of $7000.1)
INVALID_PRODUCT The product is malformed or unknown (e.g. BTC_USD or USD-BTC instead of BTC-USD )
INSUFFICIENT_FUNDS You need more base or quote currency

Channel for orders in transit

Subscribe request

{
  "type": "subscribe",
  "channels": [
    {
      "name": "afr"
    }
  ]
}

Update response

{
  "payload": [
    {
      "time": "2018-11-12T09:41:34.232Z",
      "type": "received",
      "order_id": "154201569423200001",
      "reference": "12345678899"
    }
  ],
  "type": "update",
  "channel": "afr"
}

Update response with a failure

{
  "payload": [
    {
      "order_id": "156017773818900001",
      "type": "failed",
      "reference": "12345678899",
      "time": "2019-06-10T14:42:18.972Z",
      "reason": "INVALID_PAYLOAD"
    }
  ],
  "type": "update",
  "channel": "afr"
}

Channel name: afr.

Use this channel to receive updates on your orders encrypted by the LGO Proxy that are on their way to be decrypted.

Note that the batch_id field is not present in this channel to check message loss.

Updates will notify you about changes of an encrypted order:

Type Description
received Your order will be processed in the next batch
failed Your order has failed for the given reason

Once your order is received, you can check its status using the channel for post-decryption orders' status

When type is failed reasons can be:

Reason Description
INVALID_PAYLOAD The pair is invalid or the order to cancel is not a long or the format is invalid
INVALID_KEY The key used to encrypt your order is unknown or not valid
ORDER_TO_CANCEL_NOT_FOUND The order does not exist or is already canceled

Balance channel

Subscribe request

{
  "type": "subscribe",
  "channels": [
    {
      "name": "balance"
    }
  ]
}

Snapshot response

{
  "payload": [
    ["BTC", "98.76000000", "0.00000000"],
    ["USD", "1003399.5912", "0.0000"]
  ],
  "seq": 3,
  "type": "snapshot",
  "channel": "balance"
}

The payload array values are, in order : currency code, available amount, escrowed amount.

Update response

{
  "seq": 3,
  "payload": [["USD", "1003399.5912", "0.0000"]],
  "type": "update",
  "channel": "balance"
}

The payload array values are, in order : currency code, available amount, escrowed amount.

Channel name: balance.

Use this channel to receive an initial view of your trading balances, and subsequent updates. On subscribe, the server will first sent a snapshot of your current balances, and then will send updates for every changes.

The sequencer number, seq should be checked to ensure no messages were lost. This number won't always start by 0, and subsequent checks should be based on the initial seq given with the snapshot.

Balances with no data won't be sent.

Place an order

Request

{
  "type": "placeorder",
  "order": {
    "reference": 12345678899,
    "key_id": "387ca9c6-fd87-41f6-b91d-82fe9eb9ff42",
    "order": "G94XAp38t75yjeQQEc5FPj4Y8Iz8...",
    "signature": {
      "source": "RSA",
      "value": "9faaa3636cb1bffc7..."
    }
  }
}

First, prepare your order via the following endpoint (see Prepare an order), then add a numerical reference if you want and send the message to this websocket endpoint.

Prepare an order

Example

curl -X POST -H "Content-Type: application/json" \
  -d '{"type":"L","side":"B","product_id":"BTC-USD","quantity": "1","price": "7000","reference":42}' \
  "localhost:3002/prepare-order"

Request

{
  "type": "L",
  "side": "B",
  "product_id": "BTC-USD",
  "quantity": "1",
  "price": "7000",
  "reference": 42
}

Response

{
  "key_id": "42ce3704-e94d-4d6e-801d-086714949725",
  "order": "XAp38t75yG94jeQQEc5Y8IzFPj48...",
  "signature": {
    "source": "RSA",
    "value": "9faaa3636cb1bffc7..."
  },
  "reference": 42
}

This endpoint must be used to encrypt your request before placing an order via the websocket. The response you will get in return is what needs to be sent to the websocket.

Http request

POST localhost:3002/prepare-order

Body parameters

Name Type Description
type string The order type. L for limit or M for market.
side string The order side. B for buy or S for sell.
product_id string Targeted product id. Example BTC-USD
quantity string The quantity. Example: 0.001.
price string The price. Required for a limit order; to be removed for a market order. Example: 7000.1.
reference number An optional reference to retrieve the corresponding order in afr feed. Example: 42.

Cancel order

Request

{
  "type": "placeorder",
  "order": {
    "key_id": "42ce3704-e94d-4d6e-801d-086714949725",
    "order": "XAp38t75yG94jeQQEc5Y8IzFPj48...",
    "signature": {
      "source": "RSA",
      "value": "9faaa3636cb1bffc7..."
    },
    "reference": 42
  }
}

First, prepare your order via the provided endpoint (see Prepare an order cancellation), then place it via a WebSocket message.

Prepare an order cancellation

Example

curl -X POST -H "Content-Type: application/json" \
  -d '{"order_id":"153538096329100000"}' \
  "localhost:3002/prepare-cancel"

Request

{
  "order_id": "154211289373800001",
  "reference": 42
}

Response

{
  "key_id": "42ce3704-e94d-4d6e-801d-086714949725",
  "order": "XAp38t75yG94jeQQEc5Y8IzFPj48...",
  "signature": {
    "source": "RSA",
    "value": "9faaa3636cb1bffc7..."
  },
  "reference": 42
}

This endpoint must be used to encrypt your request before cancelling an order via the websocket. The response you will get in return is what needs to be sent to the websocket.

Http request

POST localhost:3002/prepare-cancel

Body parameters

Name Type Description
order_id string Id of the order to cancel
reference number An optional reference to retrieve the corresponding order in afr feed. Example: 42.

Errors

You can receive messages with a type error, reasons can be:

Reason Description
INTERNAL_SERVER_ERROR Internal LGO error when trying to process your order
BAD_SIGNATURE Signature of you order invalid
BACK_PRESSURED
UNEXPECTED
TIMEOUT

Connectivity tests

Example: connect to the websocket using wscat and send a ping request

wscat -c ws://localhost:3002 --slash
connected (press CTRL+C to quit)
> /ping
< Received pong

To test if the websocket connection is still alive, send a ping request.

Private

Private endpoints will return data specific to your account, it is basically the type of actions available only by you when using your API access key.

Orders

List orders

Example

curl "localhost:3002/orders"

Response

{
  "result": {
    "orders": [
      {
        "remaining_quantity": "1.00000000",
        "status": "OPEN",
        "id": "154211289673900001",
        "batch_id": "5",
        "type": "L",
        "side": "B",
        "product_id": "BTC-USD",
        "quantity": "1.00000000",
        "price": "7000.0000",
        "creation_date": "2018-11-13T12:41:36.739"
      },
      {
        "remaining_quantity": "1.00000000",
        "status": "OPEN",
        "id": "154211289373800001",
        "batch_id": "4",
        "type": "L",
        "side": "B",
        "product_id": "BTC-USD",
        "quantity": "1.00000000",
        "price": "7000.0000",
        "creation_date": "2018-11-13T12:41:33.738"
      },
      {
        "remaining_quantity": "0.00000000",
        "status": "DONE",
        "id": "154241289373800001",
        "batch_id": "12",
        "type": "L",
        "side": "B",
        "product_id": "BTC-USD",
        "quantity": "1.00000000",
        "price": "6900.0000",
        "creation_date": "2018-11-13T12:41:33.738",
        "done_date": "2019-02-03T01:23:12.420"
      }
    ]
  },
  "nextPage": "aGVsbG8="
}

Fetch all your orders.

Http request

GET localhost:3002/orders

Query parameters

Name Type Description
product_id string The product to retrieve orders for. Optional. Example: BTC-USD.
max_results int The maximum results to fetch. Optional, defaults to 100. Cannot exceed 100.
page string Encoded page representation. Optional. Example: aGVsbG8=.

Get order by id

Example

curl "localhost:3002/orders/1337"

Response

{
  "remaining_quantity": "1.00000000",
  "status": "OPEN",
  "id": "1337",
  "batch_id": "5",
  "type": "L",
  "side": "B",
  "product_id": "BTC-USD",
  "quantity": "1.00000000",
  "price": "7000.0000",
  "creation_date": "2018-11-13T12:41:36.739"
}

Fetch one of your orders.

Http request

GET localhost:3002/orders/{order_id}

Place a new order

Example

curl -X POST -H "Content-Type: application/json" \
  -d '{"type":"L","side":"B","product_id":"BTC-USD","quantity": "1","price": "7000","reference":42}' \
  "localhost:3002/orders"

Request

{
  "type": "L",
  "side": "B",
  "product_id": "BTC-USD",
  "quantity": "1",
  "price": "7000",
  "reference": 42
}

Http request

POST localhost:3002/orders

Body parameters

Name Type Description
type string The order type. L for limit or M for market.
side string The order side. B for buy or S for sell.
product_id string Targeted product id. Example BTC-USD
quantity string The quantity. Example: 0.001.
price string The price. Required for a limit order; to be removed for a market order. Example: 7000.1.
reference number An optional reference to retrieve the corresponding order in afr feed. Example: 42.

Cancel an order

Cancel an open order.

Example

curl -X DELETE "localhost:3002/orders/<order_id>?reference=<reference>"

Http request

DELETE localhost:3002/orders/<order_id>?reference=<reference>

Parameters

Name Type Description
order_id string Id of the order to cancel
reference number An optional reference to retrieve the corresponding order in afr feed. Example: 42.

Trades

List trades

Example

curl "localhost:3002/trades"

Response

{
  "result": {
    "trades": [
      {
        "id": "182",
        "product_id": "BTC-USD",
        "quantity": "1.00000000",
        "price": "7422.6100",
        "fees": "148.4522",
        "creation_date": "2018-08-27T14:41:54.028",
        "side": "B",
        "order_id": "153538091223800000",
        "liquidity": "T"
      },
      {
        "id": "183",
        "product_id": "BTC-USD",
        "quantity": "0.10000000",
        "price": "7422.6100",
        "fees": "14.8452",
        "creation_date": "2018-08-27T14:42:45.032",
        "side": "B",
        "order_id": "153538096329100000",
        "liquidity": "T"
      }
    ]
  },
  "nextPage": "aGVsbG8="
}

Fetch your last trades.

Http request

GET localhost:3002/trades

Query parameters

Name Type Description
product_id string The product to retrieve trades for. Optional. Example: BTC-USD.
max_results int The maximum results to fetch. Optional, defaults to 100. Cannot exceed 100.
page string Encoded page representation. Optional. Example: aGVsbG8=.

Market data

Market Data endpoints return information that is common to all traders using the LGO Markets platform.

Products

Get products

Example

curl "localhost:3002/products"

Response

{
  "products": [
    {
      "id": "BTC-USD",
      "total": {
        "limits": {
          "min": "10",
          "max": "50000000"
        }
      },
      "base": {
        "id": "BTC",
        "limits": {
          "min": "0.001",
          "max": "1000"
        }
      },
      "quote": {
        "id": "USD",
        "increment": "0.10",
        "limits": {
          "min": "10",
          "max": "1000000"
        }
      }
    }
  ]
}

Fetch the list of pairs available for trading on the platform.

Http request

GET localhost:3002/products

Response

Name Type Description Example
increment string The tick size for the price of an order 0.10
min string The minimum quantity for an order 0.001
max string The maximum quantity for an order 1000

The total represents the gross amount (quantity * price) limits of an order.

Get orderbook

Example for level 1

curl "localhost:3002/products/BTC-USD/book?level=1"

Response

{
  "product_id": "BTC-USD",
  "bids": [["7861.6700", "9.56570000"]],
  "asks": [["8188.7200", "7.93400000"]]
}

Example for level 2

curl "localhost:3002/products/BTC-USD/book?level=2"

Response

{
  "product_id": "BTC-USD",
  "bids": [
    [
      "7861.6700",
      "9.56570000"
    ],
    [
      "6941.2200",
      "6.74610000"
    ],
    ...
  ],
  "asks": [
    [
      "8188.7200",
      "7.93400000"
    ],
    [
      "8223.7400",
      "7.84470000"
    ],
    ...
  ]
}

Fetch the book of open orders for a product with different levels of details.

Http request

GET localhost:3002/products/<product_id>/book?level=<level>

Query parameters

Name Type Description Example
product_id string The product id BTC-USD
level string The level of details 1 or 2

Levels

Level Description
1 Returns the best bid and ask
2

Currencies

Get currencies

Example

curl "localhost:3002/currencies"

Response

{
  "currencies": [
    {
      "name": "Bitcoin",
      "code": "BTC",
      "decimals": 8
    },
    {
      "name": "United States Dollar",
      "code": "USD",
      "decimals": 4
    }
  ]
}

Fetch the list of currencies and the specifications.

Http request

GET localhost:3002/currencies

Price History

Get candle stick data (OHLCV)

Accounting

List operations

Example

curl "localhost:3002/operations?type=DEPOSIT&currency_code=BTC"

Response

{
  "result": {
    "operations": [
      {
        "id": "4d74e412-44ae-41df-9c65-fd81ce53fd78",
        "account_id": "cd49ed6f-1649-4418-857e-78be55bb432a",
        "owner_id": 471671,
        "type": "DEPOSIT",
        "status": "AML_APPROVED",
        "quantity": "1.00000000",
        "currency": "BTC",
        "counter_party": "bc1qjl8uwezzlech723lpnyuza0h2cdkvxvh54v3dn",
        "created_at": 1557236543683,
        "protocol": "ONCHAIN"
      },
      {
        "id": "d44554ba-f026-4d6f-b30f-9f1c90af5680",
        "account_id": "cd49ed6f-1649-4418-857e-78be55bb432a",
        "owner_id": 471671,
        "type": "DEPOSIT",
        "status": "RECONCILED",
        "quantity": "100000.00000000",
        "currency": "BTC",
        "counter_party": "bc1qjl8uwezzlech723lpnyuza0h2cdkvxvh54v3dn",
        "created_at": 1551974290074,
        "protocol": "ONCHAIN"
      }
    ]
  },
  "next_page": "MTU1MTk3NDI5MDA3NA=="
}

Fetch your last operations.

Http request

GET localhost:3002/operations?type=DEPOSIT&currency_code=BTC

Query parameters

Name Type Description
type string DEPOSIT or WITHDRAWAL. Required.
currency_code string Currency (BTC or USD). Required.
max_results int The maximum results to fetch. Optional, defaults to 100. Cannot exceed 100.
page string Encoded page representation. Optional. Example: aGVsbG8=.

Desktop Application

Latest release (2019-07-16)

Version: 1.6.0

Windows

Download for production (checksum)

Download for sandbox (checksum)

Mac OS

Download for production (checksum)

Download for sandbox (checksum)

Linux Debian based (EXPERIMENTAL)

Download for production (checksum)

Download for sandbox (checksum)

Desktop app changelog

1.6.0

Added

Changed

1.5.1 (2019-06-27)

Added

Changed

Fixed

1.4.2 (2019-05-21)

Changed

1.4.0 (2019-04-15)

Added

Changed

Fixed

1.3.0 (2019-04-08)

Added

1.2.0 (2019-04-03)

Added

Changed

Fixed

1.1.1 (2019-03-21)

Added

Fixed

1.0.5 (2019-03-08)

Initial release.