// 'Get' methods public static List <ApiAvatar> GetPublicAvatars(string uId) { if (uId == null || !uId.StartsWith("usr_")) { return(null); } WebRequest request = WebRequest.Create("https://api.vrchat.cloud/api/1/avatars?apiKey=" + API.ApiKey + "&userId=" + uId + "&order=descending"); ServicePointManager.ServerCertificateValidationCallback = (System.Object s, X509Certificate c, X509Chain cc, SslPolicyErrors ssl) => true; WebResponse response = request.GetResponse(); string result = ""; using (Stream rs = response.GetResponseStream()) { using (StreamReader sr = new StreamReader(rs)) { result = sr.ReadToEnd(); } } response.Dispose(); List <Dictionary <string, dynamic> > list = JsonConvert.DeserializeObject <List <Dictionary <string, dynamic> > >(result); List <ApiAvatar> avatarList = new List <ApiAvatar>(); List <string> listOThings = new List <string>() { "name", "id", "description", "authorId", "authorName", "imageUrl", "thumbnailImage", "assetUrl" }; foreach (Dictionary <string, dynamic> dAvatar in list) { ApiAvatar avatar = new ApiAvatar(); foreach (string key in dAvatar.Keys) { if (listOThings.Contains(key)) { avatar.WriteField(key, dAvatar[key]); } } avatarList.Add(avatar); } return(avatarList); }