Subject: RE: Request Example code for calling WQX Web API services Hi Kevin, here’s the code we’re using. We basically used the example application Rick sent. private string UserId; private string PrivateKey; private string UrlEndpoint;a private WebClient PrepareGetHeader(Uri uri, ContentType contentType) { WebClient client = new WebClient(); string timeStamp = ""; string data = ""; string s = ""; byte[] signature; client.Headers.Add("X-UserID", UserId); timeStamp = DateTime.UtcNow.ToString(); client.Headers.Add("X-Stamp", timeStamp); data = String.Format("{0}{1}{2}{3}", UserId, timeStamp, uri.ToString(), "GET"); s = ""; signature = Encoding.UTF8.GetBytes(data); using (HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String(PrivateKey))) { byte[] signatureBytes = hmac.ComputeHash(signature); s = Convert.ToBase64String(signatureBytes); client.Headers.Add("X-Signature", Convert.ToBase64String(signatureBytes)); } if (contentType == ContentType.TextPlain) { } string contentTypeString = ""; switch (contentType) { case ContentType.TextPlain: contentTypeString = "text/plain"; break; case ContentType.Json: contentTypeString = "application/json"; break; case ContentType.Xml: contentTypeString = "application/xml"; break; } client.Headers.Add("Content-Type", contentTypeString); return client; } private string UploadFileToWqx(string filePath, string fileName) { string fileId = ""; try { string uriString = string.Concat(UrlEndpoint, "Upload/", fileName); Uri uri = new Uri(uriString); WebClient client = PreparePostHeader(uri); FileStream sourceFile = new FileStream(filePath + fileName, FileMode.Open, FileAccess.Read); BinaryReader binReader = new BinaryReader(sourceFile); byte[] fileInput = new byte[sourceFile.Length]; //create byte array of size file for (long i = 0; i < sourceFile.Length; i++) { fileInput[i] = binReader.ReadByte(); //read until done } sourceFile.Close(); binReader.Close(); fileInput = client.UploadData(uri, fileInput); fileId = System.Text.Encoding.UTF8.GetString(fileInput); fileId = fileId.Substring(1, fileId.Length - 2); } catch (WebException e) { Exception e2 = new Exception(((HttpWebResponse)e.Response).StatusDescription, e); throw e2; } catch (Exception e) { Exception e2 = new Exception("Upload: Failed, confirm file parameter", e); throw e2; } return fileId; }