C# AWIS: Get Alexa Traffic Data for a Website

Back to Index

Get Amazon Alexa information about a website.

Documentation: https://docs.aws.amazon.com/AlexaWebInfoService/latest/ApiReference_UrlInfoAction.html


Chilkat.Rest rest = new Chilkat.Rest();
bool success;

//   Provide AWS credentials for the REST call.
Chilkat.AuthAws authAws = new Chilkat.AuthAws();
authAws.AccessKey = "AWS_ACCESS_KEY";
authAws.SecretKey = "AWS_SECRET_KEY";
authAws.ServiceName = "awis";
authAws.Region = "us-west-1";
rest.SetAuthAws(authAws);

success = rest.Connect("awis.us-west-1.amazonaws.com",443,true,true);
if (success != true) {
    Debug.WriteLine(rest.LastErrorText);
    return;
}

rest.AddQueryParam("Action","UrlInfo");
rest.AddQueryParam("ResponseGroup","Rank");
rest.AddQueryParam("Url","yahoo.com");

Chilkat.StringBuilder sbXml = new Chilkat.StringBuilder();
success = rest.FullRequestNoBodySb("GET","/api",sbXml);
if (success != true) {
    Debug.WriteLine(rest.LastErrorText);
    return;
}

if (rest.ResponseStatusCode != 200) {
    Debug.WriteLine("Received error response code: " + Convert.ToString(rest.ResponseStatusCode));
    Debug.WriteLine("Response body:");
    Debug.WriteLine(sbXml.GetAsString());
    return;
}

Chilkat.Xml xml = new Chilkat.Xml();
xml.LoadSb(sbXml,true);

//  The following code parses the XML response.
//  A sample XML response is shown below the sample code.
string aws_UrlInfoResponse_xmlns_aws;
string aws_Response_xmlns_aws;
string tagPath;
string aws_RequestId;
int i;
int count_i;
string aws_Name;
string aws_Value;
string aws_DataUrl_type;
string aws_DataUrl;
int aws_Rank;
string aws_ResponseStatus_xmlns_aws;
string aws_StatusCode;

aws_UrlInfoResponse_xmlns_aws = xml.GetAttrValue("xmlns:aws");
aws_Response_xmlns_aws = xml.ChilkatPath("aws:Response|(xmlns:aws)");
aws_RequestId = xml.GetChildContent("aws:Response|aws:OperationRequest|aws:RequestId");
i = 0;
count_i = xml.NumChildrenHavingTag("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:Request|aws:Arguments|aws:Argument");
while (i < count_i) {
    xml.I = i;
    aws_Name = xml.GetChildContent("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:Request|aws:Arguments|aws:Argument[i]|aws:Name");
    aws_Value = xml.GetChildContent("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:Request|aws:Arguments|aws:Argument[i]|aws:Value");
    i = i + 1;
}

aws_DataUrl_type = xml.ChilkatPath("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:TrafficData|aws:DataUrl|(type)");
aws_DataUrl = xml.GetChildContent("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:TrafficData|aws:DataUrl");
aws_Rank = xml.GetChildIntValue("aws:Response|aws:UrlInfoResult|aws:Alexa|aws:TrafficData|aws:Rank");
aws_ResponseStatus_xmlns_aws = xml.ChilkatPath("aws:Response|aws:ResponseStatus|(xmlns:aws)");
aws_StatusCode = xml.GetChildContent("aws:Response|aws:ResponseStatus|aws:StatusCode");

Debug.WriteLine("Example Completed.");

Sample XML Response Body

<?xml version="1.0" encoding="utf-8" ?>
<aws:UrlInfoResponse xmlns:aws="http://awis.amazonaws.com/doc/2005-10-05">
    <aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11">
        <aws:OperationRequest>
            <aws:RequestId>7688d02e-2247-11e8-9c21-d97222e4a948</aws:RequestId>
        </aws:OperationRequest>
        <aws:UrlInfoResult>
            <aws:Alexa>
                <aws:Request>
                    <aws:Arguments>
                        <aws:Argument>
                            <aws:Name>url</aws:Name>
                            <aws:Value>yahoo.com</aws:Value>
                        </aws:Argument>
                        <aws:Argument>
                            <aws:Name>responsegroup</aws:Name>
                            <aws:Value>Rank</aws:Value>
                        </aws:Argument>
                    </aws:Arguments>
                </aws:Request>
                <aws:TrafficData>
                    <aws:DataUrl type="canonical">yahoo.com/</aws:DataUrl>
                    <aws:Rank>7</aws:Rank>
                </aws:TrafficData>
            </aws:Alexa>
        </aws:UrlInfoResult>
        <aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/">
            <aws:StatusCode>Success</aws:StatusCode>
        </aws:ResponseStatus>
    </aws:Response>
</aws:UrlInfoResponse>