Diagnostic Tools API Data

This section provides details for each type of data object the API exchanges.

Most of the response objects feature data accessed from a single top-level object member that accesses a sub-object or array of objects. In the interest of clarity, the tables below only list data members that appear within these inner sub-objects.

All data members listed below appear in GET responses or are required in POST requests.

Schemas

Location

Encapsulates each edge server location within a top-level locations array.

Sample GET:

{
    "locations": [
        {
            "id": "oakbrook-il-unitedstates",
            "value": "Oakbrook, IL, United States"
        },
        {
            "id": "santiago-chile",
            "value": "Santiago, Chile"
        },
        {
            "id": "jakarta-indonesia",
            "value": "Jakarta, Indonesia"
        },
        {
            "id": "moscow-russianfederation",
            "value": "Moscow, Russian Federation"
        },
        {
            "id": "hongkong-hongkong",
            "value": "Hongkong, Hong Kong"
        }
    ]
}

Location Members  

Member Type Description
id String A unique identifier for each location. Use this value for a locationId parameter in subsequent operations.
value String The name of the location.

Dig

Encapsulates a standard dig response within the top-level object’s digInfo member.

Sample GET:

{
    "digInfo": {
        "answerSection": [
            {
                "preferenceValues": null,
                "domain": "www.example.com.",
                "recordType": "A",
                "value": "NN.NN.NN.NN",
                "ttl": 5,
                "recordClass": "IN"
            }
        ],
        "hostname": "www.example.com.",
        "authoritySection": [
            {
                "preferenceValues": null,
                "domain": "example.com.",
                "recordType": "NS",
                "value": "a.example.net.",
                "ttl": 86399,
                "recordClass": "IN"
            },
            {
                "preferenceValues": null,
                "domain": "example.com.",
                "recordType": "NS",
                "value": "b.example.net.",
                "ttl": 86399,
                "recordClass": "IN"
            }
        ],
        "queryType": "A",
        "result": "\n; <<>> DiG 9.8.1-P1 <<>> www.example.com -t A\n;; global options: +cmd\n;; Got answer:\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59761\n;; "
    }
}

Dig Members  

Member Type Description
answerSection Array The answering servers, a list of DnsRecord objects.
authoritySection Array Servers authorized to answer, a list of DnsRecord objects.
hostname String The hostname for which to run the dig, reflecting the hostName specified as a parameter.
queryType Enumeration The same DNS queryType specified as a parameter. Possible enum values: A, AAAA, CNAME, MX, NS, PTR, SOA.
result String Raw dig utility output.

DnsRecord

Encapsulates a DNS record that appears within a Dig object’s answerSection or authoritySection.

Member Type Description
domain String The domain name for this record.
preferenceValues Integer Preference value, only valid for records of MX type, otherwise null.
recordClass String The class of the record, typically IN for internet.
recordType Enumeration The type of DNS record, either A, AAA, CNAME, MX, PTR, SOA, or nS.
ttl Integer The server’s default number of seconds to keep content cached.
value String The record’s value, either another domain or a final IP address.

Mtr

Encapsulates output of the mtr utility within a top-level mtr member.

Sample GET:

{
    "mtr": {
        "packetLoss": 0.0,
        "hops": [
            {
                "loss": 0.0,
                "last": 0.2,
                "number": 1,
                "host": "NNNN:NNN:N:NNN::N",
                "worst": 0.8,
                "best": 0.2,
                "stDev": 0.0,
                "avg": 0.3,
                "sent": 10
            },
            {
                "loss": 0.0,
                "last": 0.3,
                "number": 2,
                "host": "XXN-NNN.XXXNN.example.net",
                "worst": 33.9,
                "best": 0.3,
                "stDev": 10.7,
                "avg": 4.6,
                "sent": 10
            },
            {
                "loss": 0.0,
                "last": 0.6,
                "number": 3,
                "host": "XX-N-N-N.XXXNN.example.net",
                "worst": 0.6,
                "best": 0.3,
                "stDev": 0.0,
                "avg": 0.4,
                "sent": 10
            }
        ],
        "destination": "www.example.com",
        "analysis": "",
        "source": "123.123.123.123",
        "host": "aNNN-NNN-NNN-NN.deploy.example.net",
        "avgLatency": 0.3,
        "result": "Start: Thu Feb 25 22:01:09 2016\nHOST: aNNN-NNN-NNN-NNN.deploy.net Loss% Snt Last Avg Best Wrst StDev\n 1.|-- NNNN:NNNN:NN::N 0.0% 10 0.7 0.6 0.5 0.7 0.0\n 2.|-- NNNN:NNN::NNN 0.0% 10 1.4 1.4 1.2 1.4 0.0\n 3.|-- NNN:NNNN:NN:NNN::NNNN 0.0% 10 0.7 0.6 0.6 0.7 0.0\n",
        "startTime": "2016-02-01T23:49:01Z"
    }
}

Mtr Members  

Member Type Description
analysis String Any special analysis of the network data, such as identifying anomalous loops.
avgLatency Number The average latency for all hops, in seconds.
destination String The domain or IP address that is the destination of this test request. Matches the destinationDomain request parameter.
hops Mtr.hops[n] A list of network hops.
host String The hostname within the Akamai network that corresponds to the source IP address.
packetLoss Number Percentage of packets lost.
result String Raw mtr utility output.
source String The IP address that is the source of this test request. Matches the ipAddress request parameter.
startTime String An ISO 8601 timestamp for when this test occurred.

Mtr.hops[n]  

A list of network hops.

Member Type Description
avg Number The average time for this hop, in milliseconds.
best Number Fastest time, in milliseconds.
host String The host or domain for the specific hop point.
last Number The last measured hop value, useful to detect ongoing problems.
loss Number Percentage of packets lost for this hop.
number Integer An index for each hop’s count within the full set.
sent Integer The number of tests for this hop.
stDev Number The standard deviation, in milliseconds.
worst Number Slowest time, in milliseconds.

CurlRequest

Represents a curl request body.

Sample GET:

{
    "url": "http://developer.test.com/index.html",
    "userAgent": "Mozilla/5.0"
}

CurlRequest Members  

Member Type Description
url String The URL for which to gather a curl response.
userAgent String A header field to spoof a type of browser.

Curl

Encapsulates curl results within a top-level curlResults member.

Sample GET:

{
    "curlResults": {
        "responseBody": "HTTP/1.1 403 Forbidden\nServer: AkamaiGHost\r\nMime-Version: 1.0\r\nContent-Type: text/html\r\nContent-Length: 270\r\nExpires: Fri, 22 Jan 2016 02:01:42 GMT\r\nDate: Fri, 22 Jan 2016 02:01:42 GMT\r\nConnection: close\r\n<HTML><HEAD>\n<TITLE>Access Denied</TITLE>\n</HEAD><BODY>\n<H1>Access Denied</H1>\n \nYou don't have permission to access \"http://www.akamai.co.jp/\" on this server.<P>\nReference #1.f7e1aagd.1453428102.7329a0q1\n</BODY>\n</HTML>\n",
        "responseHeaders": {
            "Content-Length": "270",
            "Expires": "Fri, 22 Jan 2016 02:01:42 GMT",
            "Server": "AkamaiGHost",
            "Connection": "close",
            "Date": "Fri, 22 Jan 2016 02:01:42 GMT",
            "Content-Type": "text/html",
            "Mime-Version": "1.0"
        },
        "httpStatusCode": 403
    }
}

Curl Members  

Member Type Description
httpStatusCode Integer The HTTP response code for the curl request.
responseBody String The entire response body of the curl request.
responseHeaders Curl.responseHeaders Encapsulates the response’s headers.

Curl.responseHeaders  

Encapsulates the response’s headers.

Member Type Description
Connection String Options for the current connection.
Content-Length String The number of bytes served.
Content-Type String The content’s MIME type.
Date String The RFC–2616 formatted date of this response.
Expires String The RFC–2616 formatted date for when the request becomes stale.
Mime-Version String The MIME version.
Server String The name for the response’s web server.

LogLines

Contains grep data within a top-level logLines member, arranged as tables of tab-delimited text. Note that this log data is arranged in a different format as in the TranslatedError.logs[n] object.

Sample GET:

{
    "logLines": {
        "headers": "date time\tlog-type\tcs-ip\tfw-ip\tcs-method\tcs-uri\tcs-status\tcontent-type\tbytes_served\tbytes_received\tobj-size\ttime-taken\tcs(referer)\tcs(user-agent)\tcs(cookie)\terror\tssl-version\thost-header",
        "logs": [
            "04/13/2017 22:33\tf\t127.0.0.1\t127.0.0.1\tGET\t/L/507/106471/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/assets/common/backgroundtile.gif&I=1.1.1.1\t200\ttext/html\t-\t316\t-\t0\t-\t-\t-\t-\t-\t-",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106471/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/assets/common/backgroundtile.gif&I=1.1.1.1\t200\ttext/html\t572\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\t-\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/static_content/images/sprite/sister-brands-2x.png&I=1.1.1.1\t200\ttext/html\t506\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/mobile/041117_US_EC_HP_ANIM_DESK_MOB_2_a.jpg&I=1.1.1.1\t200\ttext/html\t547\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/desktop/041117_US_EC_HP_ANIM_DESK_main1_a.jpg&I=1.1.1.1\t200\ttext/html\t548\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/mobile/041117_US_EC_HP_ANIM_DESK_MOB_sculpt_2x.jpg&I=1.1.1.1\t200\ttext/html\t553\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/176/507/assets/desktop/040417_US_EC_HP_DESK_free_video.jpg&I=1.1.1.1\t200\ttext/html\t548\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/mobile/041117_US_EC_HP_ANIM_DESK_MOB_2_b.jpg&I=1.1.1.1\t200\ttext/html\t549\t-\t0\t1\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/158/364/assets/041317_Spring_Sale_HP_BANNER_without_CTA_US.gif&I=1.1.1.1\t200\ttext/html\t550\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tf\t127.0.0.1\t127.0.0.1\tGET\t/D/507/106481/000/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/assets/common/backgroundtile.gif&I=1.1.1.1\t200\ttext/html\t-\t367\t-\t0\t-\t-\t-\t-\t-\t-",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/D/507/106481/000/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/assets/common/backgroundtile.gif&I=1.1.1.1\t200\ttext/html\t512\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net"
        ]
    }
}

LogLines Members  

Member Type Description
headers String Tab-delimited labels for each column of logs data.
logs Array The set of log line rows after being filtered with grep. Each tab-delimited column corresponds to a headers label.

IsCdnIp

Identifies IP addresses within the Akamai network.

Sample GET:

{
    "isCdnIp": false
}

IsCdnIp Members  

Member Type Description
isCdnIp Boolean Whether an IP address is part of the Akamai edge network.

Geolocation

Encapsulates location data for an IP address within a top-level geoLocation member.

Sample GET:

{
    "geoLocation": {
        "dma": 501,
        "network": null,
        "countryCode": "US",
        "city": "NEWYORK",
        "areaCode": "212, 213",
        "pmsa": 5600,
        "zipCode": "10001-10014+10016-10041+10043-10045+10055+10060+10065",
        "longitude": -73.9967,
        "county": "NEWYORK",
        "regionCode": "NY",
        "fips": "36061",
        "proxy": null,
        "networkType": null,
        "latitude": 40.75,
        "timeZone": "EST",
        "clientIp": "NNN.NNN.NNN.NNN",
        "throughput": "vhigh",
        "continent": "NA",
        "msa": 5602,
        "asNum": 1299
    }
}

Geolocation Members  

Member Type Description
areaCode String Set of area codes that map to this IP address. Multiple values are separated with commas and spaces.
asNum Integer The Autonomous System Number that maps to this IP address.
city String The closest city, within a 50 mile radius, that the IP address maps to.
clientIp String The client IP address.
continent String A two-letter code for the continent that the IP address maps to. See EdgeScape Data Codes for the set of possible values.
countryCode String An ISO–3166, two-letter code for the country where the IP address maps to.
county String The set of counties that the IP address maps to, with + separating multiple values.
dma Integer Designated Market Area location code.
fips String Federal Information Processing Standards location code.
latitude Number The latitude the IP address maps to.
longitude Number The longitude the IP address maps to.
msa Integer Metropolitan Statistical Area location code.
network String The network that maps to this IP address. Value may be null when edge servers lack that data.
networkType String The network type that maps to this IP address. Value may be null when edge servers lack that data.
pmsa Integer Primary Metropolitan Statistical Area location code.
proxy String The proxy that maps to this IP address. May be null.
regionCode String An ISO–3166, two-letter code for the region where the IP address maps to.
throughput Enumeration Represents the connection speed for the IP address, either low, medium, high, or vhigh. IPv6 traffic always appears as low.
timeZone String The time zone that the IP address maps to.
zipCode String The zip code that the IP address maps to. Multiple values are separated with + characters, and ranges are separated with - characters.

DiagnosticUrlRequest

Information with which to supply an end user a diagnostic link to load in a browser.

Sample GET:

{
    "endUserName": "name",
    "url": "www.test.com"
}

DiagnosticUrlRequest Members  

Member Type Description
endUserName String A name to help identify the user in reporting data after the user has loaded the diagnostic link.
url String The URL for which you want to collect data, which the end user may be having trouble accessing.

DiagnosticUrl

Provides a diagnostic link.

Sample GET:

{
    "diagnosticUrl": "http://www.ipdiagnostics.com/request.action?client=test&portalSessionID=58854408213&URL=www.test.com"
}

DiagnosticUrl Members  

Member Type Description
diagnosticUrl String The URL that the end user can load in a browser to run diagnostics.

EndUserIpRequests

Encapsulates each diagnostic link test within a top-level endUserIpRequests array.

Sample GET:

{
    "endUserIpRequests": [
        {
            "endUserName": "name",
            "url": "www.test.com",
            "requestId": "314908841",
            "timestamp": "2015-09-30T00:00:00Z"
        },
        {
            "endUserName": "sample",
            "url": "www.example.com",
            "requestId": "312512835",
            "timestamp": "2015-09-30T00:00:00Z"
        }
    ]
}

EndUserIpRequests Members  

Member Type Description
endUserName String The name provided for the end user. Matches the endUserName in the DiagnosticUrlRequest.
requestId String A unique identifier for the end user’s diagnostic link request. Use this ID value to Get an End User’s IP Addresses.
timestamp String An ISO 8601 timestamp for when the end user loaded the diagnostic link.
url String The URL the diagnostic link simulated loading. Matches the url in the DiagnosticUrlRequest.

EndUserIpDetails

Encapsulates data on IP addresses used for an end user’s diagnostic link test. This sub-object is available within a top-level endUserIpDetails member.

Sample GET:

{
    "endUserIpDetails": {
        "name": "sample",
        "url": "www.example.com",
        "timestamp": "2015-09-30T00:00:00Z",
        "ips": [
            {
                "ip": "NN.NN.NN.NN",
                "ipType": "client",
                "description": "Client IP",
                "location": "SEOUL, KR"
            },
            {
                "ip": "NN.NN.NN.NN",
                "ipType": "dns",
                "description": "Client DNS IP",
                "location": "CAMBRIDGE, MA US"
            },
            {
                "ip": "NN.NN.NN.NNN",
                "ipType": "ipv6",
                "description": "Preferred IP",
                "location": "TOKYO, 13 JP"
            },
            {
                "ip": "NN.NN.NN.NN",
                "ipType": "edge",
                "description": "CDN Edge Server IP",
                "location": "CHICAGO, IL US"
            }
        ],
        "email": null,
        "browser": "Mozilla 5.0 / Macintosh"
    }
}

EndUserIpDetails Members  

Member Type Description
browser String The User-Agent header sent by the end user’s browser.
email Null A deprecated member.
ips EndUserIpDetails.ips[n] Lists each IP address.
name String The end user’s name as initially assigned to the diagnostic link test. This matches the endUserName in the DiagnosticUrlRequest.
timestamp String An ISO 8601 timestamp for when the end user loaded the diagnostic link.
url String The URL the diagnostic link simulated loading. Matches the url in the initial DiagnosticUrlRequest.

EndUserIpDetails.ips[n]  

Lists each IP address.

Member Type Description
description String A description of the IP that corresponds to the ipType.
ip String The IP address.
ipType Enumeration Identifies the type of IP address. Possible enum values: client, dns, edge, ipv6.
location String The location of the IP address. Matches a Location’s value.

GtmProperty

Encapsulates each Global Traffic Management property within a top-level gtmProperties array.

Sample GET:

{
    "gtmProperties": [
        {
            "hostName": "origin.akadns.net",
            "domain": "akadns.net",
            "property": "origin"
        },
        {
            "hostName": "origin-r3h.akadns.net",
            "domain": "akadns.net",
            "property": "origin-r3h"
        }
    ]
}

GtmProperty Members  

Member Type Description
domain String The domain name. Use this value as parameter input to List a GTM Property’s IP Addresses.
hostName String The complete hostname.
property String The subdomain property. Use this value as parameter input to List a GTM Property’s IP Addresses.

GtmPropertyIps

Encapsulates a Global Traffic Management property’s IP addresses within a top-level gtmPropertyIps member.

Sample GET:

{
    "gtmPropertyIps": {
        "testIps": [
            "65.173.24.245",
            "205.234.225.130",
            "204.2.160.183",
            "63.239.233.161",
            "72.247.124.172",
            "24.143.192.221",
            "72.246.193.231"
        ],
        "domain": "akadns.net",
        "property": "origin",
        "targetIps": [
            "204.8.50.81"
        ]
    }
}

GtmPropertyIps Members  

Member Type Description
domain String The domain name to which these IP addresses apply.
property String The GTM property (subdomain) to which these IP addresses apply.
targetIps Array A list of target IPs representing the target content you want to test against.
testIps Array A list of IPs from which you may test requests to the targetIps.

EstatsRequest

Contains the URL needed to POST an asynchronous estats request.

Sample GET:

{
    "url": "http://www.test.com"
}

EstatsRequest Members  

Member Type Description
url String The URL for which to gather error statistics.

Estats

Encapsulates error statistics within a top-level eStats member. Errors statistics report on traffic from edge servers to both clients and the origin.

Sample GET:

{
    "eStats": {
        "cpCode": 11111,
        "edgeHits": 3534,
        "topEdgeIpsWithError": [
            {
                "hits": 7,
                "edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174",
                "objectStatus": "pxR",
                "region": 16031,
                "httpStatus": 400,
                "errorCode": "0:None",
                "edgeIp": "NN.NN.NN.NN"
            },
            {
                "hits": 5,
                "edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174",
                "objectStatus": "pxR",
                "region": 20321,
                "httpStatus": 400,
                "errorCode": "0:None",
                "edgeIp": "NN.NN.NN.NN"
            }
        ],
        "originFailurePercentage": 20.0,
        "edgeErrors": 188,
        "topEdgeIpsWithErrorFromOrigin": [
            {
                "hits": 15,
                "edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxPRW&httpStatusCode=401&endTime=1444408174",
                "objectStatus": "aoxPRW",
                "region": 23308,
                "httpStatus": 401,
                "errorCode": "0:None",
                "edgeIp": "NN.NN.NN.NN"
            },
            {
                "hits": 12,
                "edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxCPRW&httpStatusCode=400&endTime=1444408174",
                "objectStatus": "aoxCPRW",
                "region": 20449,
                "httpStatus": 400,
                "errorCode": "0:None",
                "edgeIp": "NN.NN.NN.NN"
            }
        ],
        "topEdgeIpsWithSuccess": [
            {
                "hits": 13,
                "objectStatus": "pxR",
                "edgeI": "NN.NN.NN.NN",
                "region": 21524,
                "httpStatus": 302,
                "errorCode": "0:None",
                "ghostLog": null
            },
            {
                "hits": 9,
                "objectStatus": "pxR",
                "region": 24168,
                "httpStatus": 302,
                "errorCode": "0:None",
                "edgeIp": "NN.NN.NN.NN",
                "ghostLog": null
            }
        ],
        "edgeStatusCodeDistribution": [
            {
                "hits": 2942,
                "httpStatus": 200,
                "percentage": 83.0
            },
            {
                "hits": 152,
                "httpStatus": 304,
                "percentage": 4.0
            },
            {
                "hits": 137,
                "httpStatus": 302,
                "percentage": 3.0
            },
            {
                "hits": 80,
                "httpStatus": 400,
                "percentage": 2.0
            },
            {
                "hits": 74,
                "httpStatus": 401,
                "percentage": 2.0
            },
            {
                "hits": 68,
                "httpStatus": 404,
                "percentage": 1.0
            }
        ],
        "originStatusCodeDistribution": [
            {
                "hits": 404,
                "httpStatus": 200,
                "percentage": 52.0
            },
            {
                "hits": 112,
                "httpStatus": 302,
                "percentage": 14.0
            },
            {
                "hits": 75,
                "httpStatus": 400,
                "percentage": 9.0
            },
            {
                "hits": 71,
                "httpStatus": 401,
                "percentage": 9.0
            },
            {
                "hits": 44,
                "httpStatus": 404,
                "percentage": 5.0
            }
        ],
        "originHits": 765,
        "originErrors": 152,
        "topEdgeIpsWithSuccessFromOrigin": [],
        "edgeFailurePercentage": 5.0
    }
}

Estats Members  

Member Type Description
cpCode Integer The CP code to which these error statistics apply.
edgeErrors Integer The total number of reported errors for traffic between edge and client.
edgeFailurePercentage Integer The percentage of error responses for traffic between edge and client.
edgeHits Integer Total number of hits from clients to edge.
edgeStatusCodeDistribution Array Percentages and total hits for each status code for traffic between edge and client. An array of StatusCodeDistribution objects.
originErrors Integer The total number of reported errors for traffic between edge and origin.
originFailurePercentage Integer The percentage of error responses for traffic between edge and origin.
originHits Integer Total number of hits from the edge to origin.
originStatusCodeDistribution Array Percentages and total hits for each status code for traffic between edge and origin. An array of StatusCodeDistribution objects.
topEdgeIpsWithError Array The set of top IPs with errors from edge to client. An array of EdgeIp objects.
topEdgeIpsWithErrorFromOrigin Array The set of top IPs with errors from edge to origin. An array of EdgeIp objects.
topEdgeIpsWithSuccess Array The set of top IPs with successful responses from edge to client. An array of EdgeIp objects.
topEdgeIpsWithSuccessFromOrigin Array The set of top IPs with successful responses from origin to edge. An array of EdgeIp objects.

StatusCodeDistribution

For use in error statistics reports, encapsulates percentages and total hits for each status code. See the larger Estats object in which it appears.

Member Type Description
hits Integer The total number of hits per httpStatus.
httpStatus Integer The HTTP status code for which the hits and overall percentage are measured..
percentage Number The percentage of all traffic for this httpStatus.

EdgeIp

Encapsulates error statistics for a single IP address. See the larger Estats object in which it appears.

Member Type Description
edgeIp String The edge IP address.
edgeLogsLink String A link with you can get log lines for the IP address. See Get Log Lines from an IP Address.
errorCode String A detailed error message if applicable. See Error Codes for details.
hits Integer Total number of hits for this IP address.
httpStatus Integer The HTTP status code for the measured success or error case.
objStatus String The status of the object, represented as a combination of single-letter codes for all statuses that apply. See Object Status Codes for details on each code.
region String An Akamai-only identifier.

TranslatedError

Encapsulates an error translation within a top-level translatedError member.

Sample GET:

{
    "translatedError": {
        "originHostname": "akamai1b.download.akamai.com",
        "epochTime": 1450383180,
        "wafDetails": "-",
        "reasonForFailure": "The forward connection to the origin server from the edge server timed out.",
        "url": "http://etranslator.edgesuite.net/ERR_READ_TIMEOUT",
        "timestamp": "Thu, Dec 17, 2015 20:13 GMT",
        "httpResponseCode": 504,
        "serverIp": "80.67.64.110 (CAMBRIDGE,MA,US)",
        "logs": [
            {
                "fields": {
                    "received_b": "ERR_READ_TIMEOUT|before_resp_hdrs",
                    "Forward Request": "f",
                    "Request id": "1d5865b",
                    "Multi-Feature Status Field": "-",
                    "total estimated bytes received": "0",
                    "SureRouteRace-stat-dirRoute": "-",
                    "client IP (p-prefresh)": "23.79.236.14",
                    "Time spent deferring forward read": "0",
                    "Reason for Throttling": "0",
                    "HTTP method (GET HEAD etc)": "GET",
                    "HTTP status code": "0",
                    "Ghost request size": "692",
                    "Forward-side-http-overhead": "696",
                    "Forward Hostname": "akamai1b.download.akamai.com",
                    "object-max-age_s": "0",
                    "Forward ARL (if rewritten in metadata)": "/D/1682/3101/000/akamai1b.download.akamai.com/3101/crackme",
                    "Request Number": "0",
                    "timestamp": "1450383215.030",
                    "Multi-Purpose Key/Value Field": "mtse=g|0;aid=87676;pfs=c;hnd=1|n",
                    "Object Status 2": "-",
                    "Ghost IP": "80.67.64.110",
                    "Ghost request header size": "692",
                    "Real IP of Forward Ghost (ESSL)": "-",
                    "SureRouteRaceStat-indirRoute": "-",
                    "Forward IP": "23.15.201.13",
                    "ARL": "/D/1682/3101/000/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
                    "SSL overhead bytes": "4181",
                    "Edgescape": "-",
                    "SSL": "TLSv1",
                    "range": "-",
                    "IMS (i-ims)": "-",
                    "Sureroute2info": "-",
                    "content bytes received": "0",
                    "content-type": "-"
                },
                "description": "Edge Server: 80.67.64.110 going forward to 23.15.201.13"
            },
            {
                "fields": {
                    "Accept-Language": "^",
                    "dca-data": "-",
                    "flv seek processing info": "^",
                    "Client-rate-limiting": "^",
                    "Uncompressed length": "-",
                    "host header": "etranslator.edgesuite.net",
                    "Reason for not caching (priv/released)": "^",
                    "HTTP Streaming info": "-",
                    "total estimated bytes served": "568",
                    "Client Request": "r",
                    "Request byte-range": "-",
                    "SSL": "U",
                    "True client ip": "^",
                    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36",
                    "HTTP status code": "504",
                    "c-http-overhead": "^",
                    "object-max-age_s": "-",
                    "persistent request number": "1",
                    "Rate Accounting info": "^",
                    "client IP": "23.79.236.14",
                    "Client request header size": "454",
                    "Client-request-body-size": "-",
                    "timestamp": "1450383215.018",
                    "Edge Tokenization Information": "-",
                    "HTTP method": "GET",
                    "ssl-byte": "^",
                    "IMS": "-",
                    "Ghost IP": "80.67.64.110",
                    "Serial number and map": "1682.^",
                    "custom-field": "^",
                    "X-Akamai-Edge-Log": "-",
                    "referrer": "^",
                    "X-Forwarded-For": "-",
                    "Other-Error-Indication": "^",
                    "SSL overhead bytes": "4538",
                    "Web Application Firewall Information": "-",
                    "object size": "250",
                    "content bytes served": "250",
                    "object-status-2": "oW",
                    "error": "ERR_READ_TIMEOUT",
                    "cookie": "^",
                    "Origin File Size": "^",
                    "content-type": "text/html",
                    "ARL": "/^/1682/3101/^/akamai1b.download.akamai.com/ERR_READ_TIMEOUT"
                },
                "description": "Edge Server: 80.67.64.110 response to 23.79.236.14"
            }
        ],
        "requestMethod": "GET",
        "originIp": "23.15.201.13(ASHBURN,VA,US)",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36",
        "clientIp": "^ (Client IP - NA)",
        "connectingIp": "23.79.236.14 (CAMBRIDGE,MA,US)"
    }
}

TranslatedError Members  

Member Type Description
clientIp String The IP address of the client that attempted to contact the edge server to request the content. This is the machine that made a TCP connection to the edge server, possibly the IP address of a proxy server.
connectingIp String The IP address of the connecting server.
cpcode String The CP code for this request.
epochTime Integer When the request occurred, in epoch seconds. See also the timestamp.
httpResponseCode Integer The HTTP response code.
logs TranslatedError.logs[n] A series of loglines for this error request. Note that this data is arranged differently than in the LogLines object.
originHostname String The origin hostname.
originIp String The origin IP address that the edge server attempted to connect to.
reasonForFailure String An error string captured on the edge server that explains why this transaction failed. See Error Codes for details.
requestMethod String The HTTP method that the client requested for the URL.
serverIp String The IP address of the edge server that answered the client’s request or served the error.
timestamp String When the request occurred, formatted as RFC–2616. See also the epochTime.
url String The URL address the client tried to access.
userAgent String The User-Agent HTTP header sent by the client to the edge server. A value of N/A means that the client did not identify itself.
wafDetails String Provides details on any firewall applied to this request.

TranslatedError.logs[n]  

A series of loglines for this error request. Note that this data is arranged differently than in the LogLines object.

Member Type Description
description String Description for this logline.
fields Object Log items provided as key/value pairs. This object’s membership is indeterminate.

UrlDebugRequest

Represents a URL Debugger request body.

Sample GET:

{
    "url": "http://www.test.com",
    "headers": [
        "Location:http//test.com",
        "Content-Type:application/json"
    ],
    "edgeIp": "123.123.123.123"
}

UrlDebugRequest Members  

Member Type Description
edgeIp String The IP address of the edge server associated with this request.
headers Array HTTP headers relevant to this request.
url String The URL to debug.

UrlDebug

Encapsulates various HTTP and DNS information for a URL in a top-level urlDebug member.

Sample GET:

{
    "urlDebug": {
        "httpResponse": [
            {
                "name": "Edge Status Code",
                "value": " 200"
            },
            {
                "name": "Origin Response Code",
                "value": " NA"
            },
            {
                "name": "Edge Server IP",
                "value": " 184.51.102.49"
            },
            {
                "name": "Origin Server Host",
                "value": " Cannot determine the origin Server"
            },
            {
                "name": "Origin Server IP",
                "value": " NA"
            },
            {
                "name": "Cache Setting",
                "value": " TCP_MISS 30h"
            },
            {
                "name": "CpCode",
                "value": " 215959"
            },
            {
                "name": "Error Message (if any)",
                "value": " - "
            }
        ],
        "responseHeaders": [
            "HTTP/1.1 200 OK ",
            "Content-Length: 103402 ",
            "Content-Type: text/html;charset=UTF-8 "
        ],
        "logs": [
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/static_content/images/sprite/sister-brands-2x.png&I=1.1.1.1\t200\ttext/html\t506\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/mobile/041117_US_EC_HP_ANIM_DESK_MOB_2_a.jpg&I=1.1.1.1\t200\ttext/html\t547\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net",
            "04/13/2017 22:33\tr\t127.0.0.1\t-\tGET\t/L/507/106472/8s/twotree-ipa-ak1.abmr.net/akid/treatment/?D=example.com&H=www.example.com&U=/Asset_Archive/GPWeb/content/0013/220/415/assets/desktop/041117_US_EC_HP_ANIM_DESK_main1_a.jpg&I=1.1.1.1\t200\ttext/html\t548\t-\t0\t0\t-\tMozilla/5.0%20(Macintosh;%20Intel%20Mac%20OS%20X%2010_11_6)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/56.0.2924.87%20Safari/537.36\tASP1V=CT-1\t-\t-\tipa-ak1.abmr.net"
        ],
        "dnsInformation": [
            "www.example.com. 3360 IN CNAME www.example.com.edgesuite.net.",
            "www.example.com.edgesuite.net. 17577 IN CNAME a1111.b.akamai.net.",
            "a1111.b.akamai.net. 19 IN A 23.212.52.152",
            "a1111.b.akamai.net. 19 IN A 23.212.52.14 "
        ]
    }
}

UrlDebug Members  

Member Type Description
dnsInformation Array A series of DNS resolutions represented as lines of dig output.
httpResponse UrlDebug.httpResponse[n] Collects information about the HTTP response as a series of name/value pairs. See TCP Errors for details on some of the error codes that appear in this data.
logs UrlDebug.logs[n] A list of log lines for this error request. Logs follow the same tab-delimited format as in the LogLines object.
responseHeaders Array The HTTP header lines included in the response.

UrlDebug.httpResponse[n]  

Collects information about the HTTP response as a series of name/value pairs. See TCP Errors for details on some of the error codes that appear in this data.

Member Type Description
name String The HTTP response key.
value String The HTTP response value.

UrlDebug.logs[n]  

A list of log lines for this error request. Logs follow the same tab-delimited format as in the LogLines object.

Member Type Description
description String Describes each log line.
fields Object Log items provided as key/value pairs. This object’s membership is indeterminate.

TranslatedUrl

Encapsulates basic metadata about an Akamaized URL (ARL).

Sample GET:

{
    "translatedUrl": {
        "cpCode": 12345,
        "serialNumber": 54321,
        "originServer": "origin.example.com",
        "ttl": "Infinite",
        "typeCode": "Object changes when ARL changes"
    }
}

TranslatedUrl Members  

Member Type Description
cpCode Integer The CP Code that applies to this URL.
originServer String Origin hostname from which this URL derived.
serialNumber Integer A unique identifier for a server mapped to a region.
ttl String Remaining time to live in cache, either the number of seconds or Infinite.
typeCode String Describes how the server is configured.

PollResponse

Checks the status of asynchronous requests. For details, see Asynchronous Requests.

Sample GET:

{
    "retryAfter": 3,
    "link": "/is-cdn-ip-requests/1.1.1.1",
    "requestId": "88972782"
}

PollResponse Members  

Member Type Description
link String The link for this asynchronous request.
requestId String Unique identifier for the asynchronous request.
retryAfter Integer Number of seconds when the request is estimated to have processed.

Error Codes

Various error statistics and log lines may specify the following errorCode values generated by edge servers:

Error Code Reason / Recommendation
ERR_ACCESS_DENIED|* A string after the bar character that is not defined in the list below likely means that the denial was based on auth:acl.deny metadata. The string is the first position in the deny list that caused the denial.
ERR_ACCESS_DENIED|bad_cn_match The CN on the certificate didn’t match the host header.
ERR_ACCESS_DENIED|fwd_acl Connection to forward host is not allowed because the host is not added in the Allowed Origins.
ERR_ACCESS_DENIED|fwd_acl_ssl Connection to forward host is not allowed because the host is not added in the Allowed Origins.
ERR_ACCESS_DENIED|legacy_acl Connection to forward host is not allowed because the host is not added in the Allowed Origins.
ERR_ACCESS_DENIED|loop_* Loop detected.
ERR_ACCESS_DENIED|mdt Access is denied for this transaction per the metadata configuration.
ERR_ACCESS_DENIED|ssl_port_acl Server refused to go forward to a non-standard origin port.
ERR_ACCESS_DENIED|vr The request was denied due to limits placed in the configuration for blocking requests when the overall traffic goes higher than the configured threshold.
ERR_ACCESS_DENIED|waf The request was denied by the configured Web Application Firewall rules.
ERR_DNS_FAIL The origin server IP address could not be resolved from the origin hostname.
ERR_DNS_TIMEOUT The edge server timed out trying to resolve the origin hostname to an IP address.
ERR_NO_GOOD_FWD_IP This is triggered by the Origin Health Detect feature. This code means that edge server intentionally did not go forward to the origin because the origin is flagged as bad due to too many failures in retrieving content from it. This feature reduces the load on origin and gives some time for the origin to recover. As the origin starts to recover and get healthy, these errors will go away.
ERR_CONNECT_FAIL Connection to the origin server from the edge server timed out. The connection was never established.
ERR_CONNECT_TIMEOUT Connection to the origin server from the edge server timed out. The connection was never established.
ERR_DNS_IN_REGION This is not an error and doesn’t indicate any failure in transaction. This means that an edge server contacted a different server in the same location. When this condition occurs, the edge server will simply go to the origin server to retrieve the content.
ERR_SSL_CONNECT_TIMEOUT The SSL connection to the origin server from the edge server timed out.
ERR_CLIENT_ABORT The client aborted the request before the edge server sent the headers or the full object.
ERR_CLIENT_READ_TIMEOUT The edge server timed out waiting for data from the client. This is more likely to be seen on POST requests.
ERR_FORWARDING_DENIED The request was not sent to the origin server. This is normal in the case of SureRoute test objects, when some requests will be aborted by the edge server if the fastest path to the origin has already been determined.
ERR_FWD_ENTRY_ABORTED The forward connection to the origin from the edge server was aborted.
ERR_NO_FWD_HOSTS The edge server was unable to resolve any of the potential forward hostnames (origin or cache hierarchy parent or SureRoute parent) to an IP address. This indicates either a DNS problem or a problem with the map names being misconfigured or nonexistent.
ERR_READ_TIMEOUT The forward connection to the origin server from the edge server timed out.
ERR_FWD_SSL The forward SSL handshake with the origin server failed.
ERR_REFERER_DENIED Access to the page was denied due to the referrer check feature in the configuration. The HTTP Referer header in the request did not match the list of allowed domains.
ERR_MAX_REDIR_CHASE The edge server tried to follow the redirects returned from the origin server, but the number of attempts to chase the redirects before the content could be downloaded exceeded the configured threshold. The edge server served a 404 error message to the client.
ERR_READ_ERROR The TCP connection from the edge server to the origin server was broken before the headers and object were successfully downloaded. If this happens even though the origin is healthy, you can try lowering the persistent connection timeout to be lower than origin’s setting, or you can try disabling the persistent connection feature on the edge server.
ERR_FWD_BAD_HEADERS|InvalidForwardReply The headers returned from the origin server to the edge server were malformed or too large. The error will occur when the HTTP response status line is missing or malformed or when the origin response headers exceed a configured limit (default is 8192 bytes).
ERR_GZIP Read error happened due to compression.
ERR_URL_DIS_AUTH The edge server denied this request because URL-based edge authorization feature rejected this request.
ERR_OBJ_TOO_BIG The response object is larger than what is permitted by the configuration settings.
ERR_POC_FWD_OBJ_TOO_BIG The response object is larger than what is permitted by the configuration settings.

TCP Errors

The following error codes may appear within UrlDebug.httpResponse[n] data:

Code Description
TCP_HIT This content was served from cache on this edge server. The content was retrieved from disk cache.
TCP_MISS This content was not on cache, hence the edge server retried the content from another edge server or origin.
TCP_REFRESH_HIT This content was in cache but it was stale, so this edge server went to origin or another server to check whether the cached content was still valid with an If-Modified-Since request. Because the content on the cache was not invalid, the edge server served the response from the cache.
TCP_REFRESH_MISS The requested content was in cache but it was stale, so this edge server went to origin or another server to check whether the cached content was valid via an If-Modified-Since request. Because the content was invalid, the edge server downloaded a fresh copy of the content from the upstream server and served it back.
TCP_REFRESH_FAIL_HIT The requested content was in cache but it was stale, so this edge server went to origin or another server to check whether the cached content was valid via an If-Modified-Since request. Because the request to validate the content failed, the edge server served the stale content.
TCP_IMS_HIT The edge server received an If-Modified-Since request from the client. The content was valid, so the edge server served the content from cache.
TCP_NEGATIVE_HIT The edge server served an error response from cache because a previous request for that client had failed. Edge servers cache some error responses negatively for a very short time.
TCP_MEM_HIT This content was served from cache. The content was retrieved from memory cache.
TCP_DENIED The request was denied for an unspecified reason.
TCP_COOKIE_DENY The request was denied due to cookie authentication.

Object Status Codes

Diagnostics data features objStatus members whose values specify a combination of letter codes that characterize aspects of a request. The table below shows codes as they may apply to either edge/client or edge/origin transactions.

Code Client Origin Description
a SureRoute is enabled.
d The object had to be fetched from disk.
D Uses SureRoute direct policy. The edge server chose to go directly to the origin server because it was fastest in the most recent race.
e If ghost served the last byte of the object to the client, whether the request is of byte-range type or not. If a range request was made, this means that the server completed serving a range request that included the last byte.
F The request triggered prefetching of embedded objects based on the Prefetching feature.
g If Akamai contacted an ICP peer server.
G If a forward request was made to satisfy an ICP peer.
i The object was found in the file system buffer cache, or the request was for an ESI fragment.
K The request was for a prefetched object.
m The entire object was in the server’s memory cache.
n The object was negatively cached, such as a 404.
N The forward request was to a NetStorage domain.
o Whether the request was to the origin server.
p Akamai contacted another hierarchy parent edge server.
P If a forward request or response was made to satisfy a cache hierarchy child
r If this is an authorization request to a remote auth server.
s The object was stale, and needed validation.
t The request was for a SureRoute test object.
u The edge server ungzipped the object at some point, perhaps to serve a client that doesn’t accept gzip, or for ESI. See also z and Z.
V The object TTL was set in metadata.
W The object TTL was set in response headers.
x If no-store was set in the metadata file.
y If no-store was turned on in the response header.
z The response was served to the client Content-Encoded: gzipped. See also u and Z.
Z An edge server, not necessarily this edge server, zipped the object at some point. See also z and u.

Last modified: 5/4/2017