I think it has been caused because of the number of the request per POST operation, not just because using configuration object for API).
This is json string that comes from httpRequest.BinaryRead method (this is one request per post only):
The same value is in the request from firebug.
The issue is it's trying to decode request as a list when it's not a list. It has been sent as a simple json object but it doesn't consider such case here.
This is the operation it does always in DirectProcessor.Execute method without considering if it's array of objects in json string or not:
In such case it should be such operation for simple json object (without generic List<>):
requests = JsonConvert.DeserializeObject<List<DirectRequest>>(json);
DirectRequest req = JsonConvert.DeserializeObject<DirectRequest>(json);