Version 2
Coinfloor offers an Event Stream resource that complies with the Server-Sent Events specification by the W3C. This resource delivers a continuous, consistent stream of events related to market and account activity on the Coinfloor platform. It is offered as a simpler alternative to Coinfloor's WebSocket API for clients that do not require bidirectional communication with the platform.
The Event Stream resource supports the standard Last-Event-ID
request header to enable transiently disconnected clients to reconnect and resume the event stream without missing any events. See the Server-Sent Events specification for details.
The Event Stream resource may be requested without authentication, in which case only public events (order book and ticker changes) are returned.
Requests for the Event Stream resource may authenticate using HTTP Basic Authentication, wherein the user-id is the concatenation of user's numeric ID, a slash, and the user's Base64-encoded API key, and the password is the user's password or the Base64 encoding of the user's 28-byte private key that is derived from the user's ID and password. Authenticated requests will receive account-private events (balance changes and more details on the user's own order events) in addition to the public events.
event: BalanceChanged
data: {
data: "asset": <integer>,
data: "available": <integer>,
data: "reserved": <integer>
data: }
asset
: (integer) The numeric identifier of the asset whose available balance in the user's account changed.available
: (integer) The scaled available amount of the specified asset in the user's account.reserved
: : (integer) The scaled reserved amount of the specified asset in the user's account.
event: OrderOpened
data: {
data: "base": <integer>,
data: "counter": <integer>,
data: "id": <integer>,
data: "tonce": <integer>,
data: "quantity": <integer>,
data: "price": <integer>,
data: "time": <integer>
data: }
base
: (integer) The numeric identifier of the base asset of the order.counter
: (integer) The numeric identifier of the counter asset of the order.id
: (integer) The numeric identifier of the order.tonce
: (integer ornull
, conditional) The tonce given in thePlaceOrder
command that opened the order, ornull
if that command did not specify a tonce. Present only if the authenticated user is the owner of the order.quantity
: (integer) The scaled amount of the base asset that is to be traded. It is negative for a sell order and positive for a buy order.price
: (integer) The scaled price at which the order offers to trade.time
: (integer) The microsecond Unix timestamp at which the order was opened.
event: OrdersMatched
data: {
data: "base": <integer>,
data: "counter": <integer>,
data: "bid": <integer>,
data: "bid_tonce": <integer>,
data: "ask": <integer>,
data: "ask_tonce": <integer>,
data: "quantity": <integer>,
data: "price": <integer>,
data: "total": <integer>,
data: "bid_rem": <integer>,
data: "ask_rem": <integer>,
data: "time": <integer>,
data: "bid_base_fee": <integer>,
data: "bid_counter_fee": <integer>,
data: "ask_base_fee": <integer>,
data: "ask_counter_fee": <integer>
data: }
base
: (integer) The numeric identifier of the base asset of the orders.counter
: (integer) The numeric identifier of the counter asset of the orders.bid
: (integer, conditional) The numeric identifier of the bid order that matched. Omitted if the bid was a market order.bid_tonce
: (integer, conditional) The tonce given in thePlaceOrder
command that opened the bid order, ornull
if that command did not specify a tonce. Present only if the authenticated user is the owner of the bid order.ask
: (integer, conditional) The numeric identifier of the ask order that matched. Omitted if the ask was a market order.ask_tonce
: (integer, conditional) The tonce given in thePlaceOrder
command that opened the ask order, ornull
if that command did not specify a tonce. Present only if the authenticated user is the owner of the ask order.quantity
: (integer) The scaled amount of the base asset that was traded.price
: (integer) The scaled price at which the trade executed.total
: (integer) The scaled amount of the counter asset that was traded.bid_rem
: (integer, conditional) The scaled quantity remaining in the bid order after the trade. It is always positive. Omitted if the bid was a market order.ask_rem
: (integer, conditional) The scaled quantity remaining in the ask order after the trade. It is always positive. Omitted if the ask was a market order.time
: (integer) The microsecond Unix timestamp at which the trade executed.bid_base_fee
: (integer) The scaled amount of the base asset that was charged to the buyer as a trade fee.bid_counter_fee
: (integer) The scaled amount of the counter asset that was charged to the buyer as a trade fee.bid_base_fee
andbid_counter_fee
are present only if the authenticated user is the owner of the bid order.
ask_base_fee
: (integer) The scaled amount of the base asset that was charged to the seller as a trade fee.ask_counter_fee
: (integer) The scaled amount of the counter asset that was charged to the seller as a trade fee.ask_base_fee
andask_counter_fee
are present only if the authenticated user is the owner of the ask order.
event: OrderClosed
data: {
data: "base": <integer>,
data: "counter": <integer>,
data: "id": <integer>,
data: "tonce": <integer>,
data: "quantity": <integer>,
data: "price": <integer>
data: }
base
: (integer) The numeric identifier of the base asset of the order.counter
: (integer) The numeric identifier of the counter asset of the order.id
: (integer) The numeric identifier of the order.tonce
: (integer ornull
, conditional) The tonce given in thePlaceOrder
command that opened the order, ornull
if that command did not specify a tonce. Present only if the authenticated user is the owner of the order.quantity
: (integer) The scaled amount of the base asset remaining to be traded at the time the order was closed. It is negative for a sell order and positive for a buy order.price
: (integer) The scaled price at which the order had offered to trade.
event: TickerChanged
data: {
data: "base": <integer>,
data: "counter": <integer>,
data: "last": <integer>,
data: "bid": <integer>,
data: "ask": <integer>,
data: "low": <integer>,
data: "high": <integer>,
data: "volume": <integer>
data: }
base
: (integer) The numeric identifier of the base asset of the book whose ticker changed.counter
: (integer) The numeric identifier of the counter asset of the book whose ticker changed.last
: (integer ornull
) The scaled price at which the last trade executed on the book, ornull
if no trade has executed on the book.bid
: (integer ornull
) The scaled price of the highest-priced bid order on the book, ornull
if the book contains no bid orders.ask
: (integer ornull
) The scaled price of the lowest-priced ask order on the book, ornull
if the book contains no ask orders.low
: (integer ornull
) The scaled price at which the lowest-priced trade on the book executed within the preceding 24 hours, ornull
if no trade has executed on the book in the preceding 24 hours.high
: (integer ornull
) The scaled price at which the highest-priced trade on the book executed within the preceding 24 hours, ornull
if no trade has executed on the book in the preceding 24 hours.volume
: (integer) The scaled total amount of the base asset that has been traded on the book within the preceding 24 hours.
event: UserTradeVolumeChanged
data: {
data: "asset": <integer>,
data: "volume": <integer>
data: }
asset
: (integer) The numeric identifier of the asset whose trailing 30-day user trade volume has changed.volume
: (integer) The scaled amount of the user's trailing 30-day trade volume in the specified asset.