Here the Shaq technical Details.
It might be usefull to review it to understand the functionalities.


Shaq can be used in many ways by your TMS or ERP. It is a full open bidding system where you can define your own rules. There is almost no limit on the possibilities you have.

It is composed of 3 major components : an API, a Websocket and a Web Application.


The minimum you can get is the only API version. You can then create or query your shaqs, bids, chats or any other information the way you like/need it. But you need to understand there is a restriction : a rate limiting has been setup on the Api: As default you have 20 requests/min for 1000 shaqs/month and below. You get an extra 1 requests/min every 100 shaqs/months. That is why we also recommend to use the websocket service.

With the Websocket there is no limit, you get realtime event and you can easily connect your application to it.


if you do not have an application, you can then use the default web application provided by shaq. You can start shaqqing from tomorrow. It has all the features and can be customized. But customization has also some limits. If you need a complete different look and fell or want to define your own rules you need then to create yours !

  curl -s -i -X POST \
 -H 'content-type:application/json' \
 -d '[{
 "id": "'$(cat /proc/sys/kernel/random/uuid)'",
 "creator": "DEMO",
 "name" : "'$name'",
 "valid_from": "'$(date --date "1 minute" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
 "valid_until": "'$(date --date "2 minutes" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
 "key": "'$Shaq'",
 "source": [ "ALPHABET" ],
 "target": [ "DHL", "UGO" ],
 "targetName": [ "D.H.L.", "Ugo" ],
 "puPlace": [ "630 rue salvadore allende", "57390", "audin-le-tiche", "France", "FR" ],
 "puContact": [ "Doom Center", "Laurent", "[email protected]", "+333333333" ],
 "puDate": "'$(date --date "1 day" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
 "dePlace": [ "8 rue de surene" , "75008", "Paris" , "France" ,"FR" ],
 "deContact": [ "Sara home", "Bertrand", "[email protected]", "+333333333" ],
 "deDate": "'$(date --date "2 days" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
 "dimension": [ "1", "100","120", "120", "5", "no"],
 "distance": "500",
 "notes": "Nothing",
 "stackable": "No",
 "transport": [ "AIR", "CAR" ],
 "currency": "EUR",
 "visible": "private"

        curl -s -i  -X POST \
        -H 'content-type:application/json' \
        -d '[{
        "id": "'$(cat /proc/sys/kernel/random/uuid)'",
        "key": "'$Shaq'",
        "target": [ "SKOREWAY"],
        "source": [ "82SKOREX" ],
        "type": "bid",
        "from": "nico",
        "status": "created",
        "auction": "AAAAAA",
        "valid_until": "'$(date --date "30 minutes" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
        "vehicule": "FRG1",
        "loaded": "Yes",
        "price" : "30",
        "puDate": "'$(date --date "1 day" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
        "deDate": "'$(date --date "2 days" -u +"%Y-%m-%dT%H:%M:%S.000Z")'",
        "currency": "EUR",
        "driver": "1"

        var io = require('');

  const usercode = "SHAQ";
  const username = "ftaggart";
  const userkey = "ftaggart";

  var socket = io('', {
   path: '/' + usercode + '/',
   query: {
     usercode: usercode,
     username: username,
     userkey: userkey

  socket.on(usercode, function(data) {