Here is the script I ran to register my ISY to the TV. Its literally a copy/paste from the API I mentioned.
Just be sure to manually replace the "your.ISY.ip", "your.TVs.ip", and "YourAuthenticationCode".
The authentication code comes from the manual registration page in settings on the TV itself.
public bool sendAuth(string YourAuthenticationCode) { bool reg = false; string your.tvs.IP = this.Server_Name; string jsontosend = "{\"id\":13,\"method\":\"actRegister\",\"version\":\"1.0\",\"params\":[{\"clientid\":\"" + your.tvs.IP + ":34c43339-af3d-40e7-b1b2-743331375368c\",\"nickname\":\"" + your.tvs.IP + "\"},[{\"clientid\":\"" + your.tvs.IP + ":34c43339-af3d-40e7-b1b2-743331375368c\",\"value\":\"yes\",\"nickname\":\"" + your.tvs.IP + "\",\"function\":\"WOL\"}]]}"; try { var httpWebRequest2 = (HttpWebRequest)WebRequest.Create(@"http://" + your.ISY.IP + @"/sony/accessControl"); httpWebRequest2.ContentType = "application/json"; httpWebRequest2.Method = "POST"; httpWebRequest2.AllowAutoRedirect = true; httpWebRequest2.CookieContainer = allcookies; httpWebRequest2.Timeout = 500; using (var streamWriter = new StreamWriter(httpWebRequest2.GetRequestStream())) { streamWriter.Write(jsontosend); } string authInfo = "" + ":" + YourAuthenticationCode; authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); httpWebRequest2.Headers["Authorization"] = "Basic " + authInfo; var httpResponse = (HttpWebResponse)httpWebRequest2.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var responseText = streamReader.ReadToEnd(); _Log.writetolog("Registration response: " + responseText, false); this.Registered = true; reg = true; } string answerCookie = JsonConvert.SerializeObject(httpWebRequest2.CookieContainer.GetCookies(new Uri("http://" + your.ISY.IP + "/sony/appControl"))); System.IO.StreamWriter file = new System.IO.StreamWriter("cookie.json"); file.WriteLine(answerCookie); file.Close(); this.Cookie = answerCookie; } catch { _Log.writetolog("Registration process Timed Out", false); this.Registered = false; } return reg; } #endregion