Is there a problem with the REST interface on CiviCRM API?
In the end, I was only able to make it work by using array notation. Some examples below. All these worked in the array notation on the right, but not in the object notation on the left:
"options": {"limit":"100","offset":"100"}&nbsp;&nbsp;--->&nbsp;&nbsp;"options[limit]": "1","options[offset]": "100""custom_1": {"IS NOT NULL":"1"}&nbsp;&nbsp;--->&nbsp;&nbsp;"custom_1[IS NOT NULL]": "1""custom_1": {"LIKE": "%stringtosearch%}&nbsp;&nbsp;--->&nbsp;&nbsp;"custom_1[LIKE]":"%stringtosearch%"So in my case my json payload looked like this:

json = {
      "return": "id,custom_116,custom_16",
      "custom_16[IS NOT NULL]": "1",
      "custom_15[&lt;&gt;]": "",
      "options[limit]": "50",
      "options[offset]": "50",
      "options[sort]": "id"
    }


Next task is to work out how to convert the OR option into array notation:"options":{"or":[["custom_15","custom_16"]]}&nbsp;&nbsp;---> ???