public async void Create() { try { HttpResponseMessage response = await _registrationClient.GetAsync("https://www.instagram.com"); var responseCookies = _cookieContainer.GetCookies(new Uri("https://www.instagram.com")).Cast <Cookie>().ToList(); _registrationClient.DefaultRequestHeaders.Add("Origin", "https://www.instagram.com"); _registrationClient.DefaultRequestHeaders.Add("Referer", "https://www.instagram.com/"); _registrationClient.DefaultRequestHeaders.Add("X-Requested-With", "XMLHttpRequest"); _registrationClient.DefaultRequestHeaders.Add("X-Instagram-AJAX", "1"); _registrationClient.DefaultRequestHeaders.Add("X-CSRFToken", responseCookies[0].Value); HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(await response.Content.ReadAsStringAsync()); var javascriptEngine = new Jurassic.ScriptEngine(); object evalResult = javascriptEngine.Evaluate("(function() { var window = {}; " + htmlDocument.DocumentNode.SelectNodes("//script[@type='text/javascript']")[4].InnerHtml + " return window._sharedData; })()"); JObject scriptJson = JObject.Parse(JSONObject.Stringify(javascriptEngine, evalResult)); _cookieContainer.Add(new Cookie("ig_pr", scriptJson["display_properties_server_guess"]["pixel_ratio"].ToString()) { Domain = "instagram.com" }); _cookieContainer.Add(new Cookie("ig_vw", scriptJson["display_properties_server_guess"]["viewport_width"].ToString()) { Domain = "instagram.com" }); NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty); queryString["first_name"] = _instagramUsername; queryString["username"] = _instagramUsername; queryString["password"] = _instagramPassword; queryString["email"] = _instagramEmail; StringContent queryStringContent = new StringContent(queryString.ToString()); queryStringContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); HttpResponseMessage creationResponse = await _registrationClient.PostAsync("https://www.instagram.com/accounts/web_create_ajax/", queryStringContent); JObject responseJson = JObject.Parse(await creationResponse.Content.ReadAsStringAsync()); if (responseJson["account_created"].ToObject <bool>()) { if (OnSuccess != null) { OnSuccess.BeginInvoke(this, null, null); } } else { if (responseJson["errors"] != null) { StringBuilder stringBuilder = new StringBuilder(); foreach (JProperty error in responseJson["errors"]) { stringBuilder.Append(error.Value[0] + " "); } if (OnWarning != null) { OnWarning.BeginInvoke(stringBuilder.ToString(), null, null); } } } } catch (Exception ioException) when(ioException is IOException) { } catch (Exception requestException) when(requestException is HttpRequestException) { if (requestException.InnerException is WebException) { if (((WebException)requestException.InnerException).Status == WebExceptionStatus.ConnectFailure) { if (OnFailure != null) { OnFailure.BeginInvoke(string.Format("'{0}' failed to connect to Instagram.", Proxy), null, null); } } } } catch (Exception ex) { //ignore the other exceptions } }