Public Channels

The following channels do not require authentication, however benefit from optimisations allowing a faster and lower latency data feed.

Data

Channel

Event

Event Details

Get Products

product_cash_{currency_pair_code}_{product_id}

updated

  • Last Traded Price Updated

Order Book

price_ladders_cash_{currency_pair_code}_{side}

updated

  • New order appears in ladder

  • Existing order updated in ladder

  • Order is removed from ladder

Executions

executions_cash_{currency_pair_code}

updated

  • New execution created

Executions Details

executions_details_cash_{currency_pair_code}

updated

  • New execution created

/* javascript - using dedicated library */
const { TapClient } = require("liquid-tap");
const tap = new TapClient();
const public_channel = tap.subscribe("product_cash_btcsgd_7");
public_channel.bind("updated", function(data) {
console.log("product_cash_btcsgd_7 has been updated", data);
});
const product_channel = tap.subscribe("product_cash_btcusd_1");
const orderbook_channel = tap.subscribe("price_ladders_cash_btcjpy_sell");
const executions_channel = tap.subscribe("executions_cash_btcjpy");
const executions_detail_channel = tap.subscribe("execution_details_cash_btcusd");
/* javascript - using raw websockets */
const ws = new WebSocket('wss://tap.liquid.com/app/LiquidTapClient');
ws.onmessage = (message) => {
const wsEvent = JSON.parse(message.data);
switch(wsEvent.event){
case 'pusher:connection_established':
console.log('Connected!');
ws.send(JSON.stringify({"event":"pusher:subscribe","data":{"channel":"some_public_channel"}}));
break;
case 'pusher_internal:subscription_succeeded':
console.log('Subscribed: ' + wsEvent.channel);
case 'updated':
console.log('Updated: ' + wsEvent.data);
}
}