If you use the Kite Connect Python or PHP client libraries, the instruments() call returns an array of objects which you can just encode to JSON. Otherwise, you'll have to parse the CSV and encode it to JSON yourself in whatever language you're using.
Request: https://api.kite.trade/session/token array(3) { ["request_token"]=> NULL ["checksum"]=> string(64) "77124d6443b6c0cfbcd6172e911ad09142ce7a493960f2dba456903edb2d5dfc" ["api_key"]=> string(16) "nq1qwhadd7o4pk24" } Response :{"status": "error", "message": "Missing request_token", "error_type": "InputException"} Authentication failed: Missing request_token
Authentication failed: Missing request_token
And the parameter you are sending
["request_token"]=> NULL
Clearly, the error is because you are not sending the request_token that you'd receive after the login flow.
It easily converts csv data to json. Also uses the column headers as keys for json.