
- Overview
- Resources
- API summary
- List available edge server locations
- Run dig from an edge server location
- Run mtr from an edge server location
- Run curl from an edge server location
- Get log lines from an edge server location
- Get CDN status
- Launch a CDN status request
- Get geolocation for an IP address
- Run dig from an IP address
- Run mtr from an IP address
- Run curl from an IP address
- Get log lines from an IP address
- Check a CDN status request
- Get CDN status asynchronously
- List end user groups
- Create a diagnostic link for a group
- Get diagnostic data for a group
- List GTM properties
- List IP addresses for a GTM property
- Get error statistics
- Launch an error statistics request
- Get CP code error statistics
- Launch a CP code error statistics request
- Check an error statistics request
- Get error statistics asynchronously
- Translate an error
- Launch an error translation request
- Check an error translation request
- Translate an error asynchronously
- Debug a URL
- Launch a URL debug request
- Check a URL debug request
- Debug a URL asynchronously
- Get a translated URL
- Get an ESI debugging report
- Data
- Location
- Dig
- DnsRecord
- Mtr
- CurlRequest
- Curl
- LogLines
- IsCdnIp
- Geolocation
- DiagnosticLinkRequest
- DiagnosticLinkResponse
- DiagnosticGroups
- GroupDiagnosticData
- GtmProperty
- GtmPropertyIps
- EstatsRequest
- Estats
- StatusCodeDistribution
- EdgeIp
- TranslatedError
- UrlDebugRequest
- UrlDebug
- TranslatedUrl
- PollResponse
- ESIQuery
- ESIReport
- ESIPage
- Error codes
- TCP errors
- Object status codes
- Errors
Diagnostic Tools API v2
Diagnose your server, ESI, DNS, and network problems from Akamai servers around the world.
Learn more:
Download this API’s RAML and JSON schema descriptors.
Overview
Once you extend your web content onto the Akamai edge network and apply various Akamai features to accelerate and manipulate content, you need to be able to troubleshoot any problems your own users may encounter. The Diagnostic Tools API allows you to diagnose many common problems Akamai customers experience when delivering content to their end users. It offers a programmatic alternative to many of the features available in Akamai Control Center, under the Support ⇒ Diagnostic tools menu.
Version 2 of the Diagnostic tools API includes these features:
The new API now allows you to access data asynchronously to avoid long-running requests that often time out. See Asynchronous requests for more information.
It allows you to run many familiar networking tools such as
dig
,mtr
, andcurl
, or get logs either from locations on the Akamai edge network, or from specific Akamai IP addresses.A new error statistics feature allows you to research how edge servers communicate both with user client requests, and with your origin server.
You are also able to aggregate error statistics for each CP code, the main system you use to organize categories of web content.
This API version allows you to diagnose problems with any Global Traffic Management properties (subdomains) you administer.
In addition to running tests on specific edge server locations or IP addresses, you can send individual end users diagnostic links to trace what happens to their requests.
This API version lets you troubleshoot, review, and debug your Edge Side Includes (ESI) code. It also lets you emulate specific client-browser and geographical conditions. See ESI Debugger for more information.
See Diagnostic utilities for more information on available tools. See the Resources section for a complete listing of API operations.
Who should use this API
Use this API to implement your own problem-resolution dashboard for Akamai-provisioned content, or to integrate it with other similar debugging tools. Use the end-user operations to implement interfaces to solicit feedback from your own users. In addition to helping solve any problems your end users experience, consider also leveraging these batch tools to design more proactive interfaces to monitor performance.
Get started
To configure this API for the first time:
Review Get Started with APIs for details on how to set up client tokens to access any Akamai API. These tokens appear as custom hostnames that look like this:
https://akzz-XXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX.luna.akamaiapis.net
.To enable this API, choose the API service named Diagnostic Tools, and set the access level to READ-WRITE.
Some of the diagnostic tools this API makes available require certain features to be available under your product and contract. For example, you need Global Traffic Management enabled to run the corresponding diagnostic tools, otherwise you get a 403 error. Make sure the identity under which you provision the API has access to all the features for which you want diagnostic data.
Diagnostic utilities
Many of the utilities this API makes available to you effectively extend the range of standard networking tools so that you can run them from arbitrary locations within the Akamai network, rather than from your local network. The API makes these diagnostic utilities available:
Akamai server locations: This basic enabling utility lists available Akamai edge server locations. You may need this information to run other utilities from a set of edge server locations.
Akamai CDN status: This basic enabling utility confirms whether a specified IP address belongs to an Akamai edge server. You may need this information to run other utilities from a set of edge IP addresses.
Dig, by edge IP or location: This uses the
dig
command to provide Domain Name Server (DNS) details for the location of the edge server and hostname or domain name, allowing you to diagnose issues with domain name resolution.Mtr, by edge IP or location: This uses the
mtr
command to provide information about the route, number of hops, and time that Internet traffic packets take between the edge server and a remote host or destination. The results can show you where network delays are being introduced in the path.Curl, by edge IP or location: This uses the
curl
command to provide a specified URL’s raw HTML. Making an HTTP request from an edge server lets you gather information about the HTTP response.Log Lines, by edge IP or location: This uses the
grep
command to retrieve and parse log records within the last 48 hours from either an edge server location or an IP address.Geolocation: This provides the geographic and network location of any IP address.
User diagnostic data: This tool generates a link to obtain client and Domain Name Server (DNS) IP information for a group of end users. You can send the generated link to end users of a hostname. When they click the link, the API captures user and mapping information that you may need to troubleshoot a problem.
Global Traffic Management: This tool provides a mapping of subdomain properties to domain names, and corresponding edge IP addresses.
Error statistics: This provides details on errors that occur when delivering web content. It’s based on real-time traffic data, both for client-to-edge and edge-to-origin traffic.
Error translations: This uses the error string from an error page’s reference number to fetch a summary and log information for the error.
URL debugging: This provides DNS Information, HTTP response, response headers, and logs for a URL or ARL (Akamaized URL).
URL translations: This provides basic information about a specified hostname or domain name, such as typecode, origin server, CP code, serial number, and TTL for an Akamaized URL (ARL).
ESI debugger: This provides a comprehensive debugging report on the ESI code of a source page and all included pages. It reports syntax errors, evaluation messages to check whether the site is working properly, and all environment variables used for your test. Also, it provides features that let you emulate user geographical data and client-browser conditions.
Asynchronous requests
In many cases, diagnostic data can’t be pre-cached, and Akamai edge servers need to dynamically assemble it for you. This introduces significant latencies when doing ordinary GET requests on the reporting data. Requests can run minutes long, and can time out. To address this problem, version 2 of the Diagnostic Tools API introduces a new way to access the data asynchronously. Instead of getting the data directly, you launch a request to fetch it later, and poll the status of that request. When the data is ready, a 303 response provides a link to the data in the same format as you would ordinarily get directly.
These steps form the basis for the asynchronous API workflow:
For each relevant direct GET operation, choose instead the corresponding launch POST operation.
The POST’s response body object features a
requestId
that you can store to run a follow-up check on the request’s status. Otherwise store the API hypermedialink
to check it directly.Also store the
retryAfter
interval from the POST’s response body object. This represents the estimated number of seconds for when the data will be ready for you.Wait for the duration of the
retryAfter
interval, then either use therequestId
to run the relevant check operation, or simply GET thelink
.If the response yields a 200 code, it means the process is still running, and the data is not yet ready. Store the revised value of the
Retry-After
header, or the response object’sretryAfter
member, then run the check operation again.Once the response yields a 303 code, it means the request has completed, and your data is now ready. Use the
requestId
to run the operation where you get the data asynchronously, or simply run GET on the 303 response’sLocation
API hypermedia link. The API makes the requested data available at that link for at least 24 hours.
The API provides this set of asynchronous operations as an alternative to accessing directly, but with latency:
Rate limiting
Diagnostic Tools API endpoints impose a rate-limiting constraint of 10 requests per 60 seconds. When the limit is reached, the API responds with an HTTP 429 error, and you can’t make new requests for 60 seconds. You need to consider the limit when calling successive operations as part of a loop.
X-RateLimit-Limit
: Total number of requests the client can make over the allotted span of time.
X-RateLimit-Remaining
: The number of remaining requests allowed during the period.
Resources
This section provides details on the API’s operations and request parameters.
API summary
Download the RAML descriptors for this API.
Operation | Method | Endpoint |
---|---|---|
Edge server locations | ||
List available edge server locations | GET | /diagnostic-tools/ |
Run dig from an edge server location | GET | /diagnostic-tools/ |
Run mtr from an edge server location | GET | /diagnostic-tools/ |
Run curl from an edge server location | POST | /diagnostic-tools/ |
Get log lines from an edge server location | GET | /diagnostic-tools/ |
IP addresses | ||
Get CDN status | GET | /diagnostic-tools/ |
Launch a CDN status request | POST | /diagnostic-tools/ |
Get geolocation for an IP address | GET | /diagnostic-tools/ |
Run dig from an IP address | GET | /diagnostic-tools/ |
Run mtr from an IP address | GET | /diagnostic-tools/ |
Run curl from an IP address | POST | /diagnostic-tools/ |
Get log lines from an IP address | GET | /diagnostic-tools/ |
Is CDN IP requests | ||
Check a CDN status request | GET | /diagnostic-tools/ |
Get CDN status asynchronously | GET | /diagnostic-tools/ |
User diagnostic data | ||
List end user groups | GET | /diagnostic-tools/ |
Create a diagnostic link for a group | POST | /diagnostic-tools/ |
Get diagnostic data for a group | GET | /diagnostic-tools/ |
Global Traffic Management | ||
List GTM properties | GET | /diagnostic-tools/ |
List IP addresses for a GTM property | GET | /diagnostic-tools/ |
Estats | ||
Get error statistics | GET | /diagnostic-tools/ |
Launch an error statistics request | POST | /diagnostic-tools/ |
CP codes | ||
Get CP code error statistics | GET | /diagnostic-tools/ |
Launch a CP code error statistics request | POST | /diagnostic-tools/ |
Estats requests | ||
Check an error statistics request | GET | /diagnostic-tools/ |
Get error statistics asynchronously | GET | /diagnostic-tools/ |
Translated errors | ||
Translate an error | GET | /diagnostic-tools/ |
Launch an error translation request | POST | /diagnostic-tools/ |
Translate error requests | ||
Check an error translation request | GET | /diagnostic-tools/ |
Translate an error asynchronously | GET | /diagnostic-tools/ |
URL debugger | ||
Debug a URL | GET | /diagnostic-tools/ |
Launch a URL debug request | POST | /diagnostic-tools/ |
URL debugger requests | ||
Check a URL debug request | GET | /diagnostic-tools/ |
Debug a URL asynchronously | GET | /diagnostic-tools/ |
Translated URLs | ||
Get a translated URL | GET | /diagnostic-tools/ |
ESI Debugger | ||
Get an ESI debugging report | POST | /diagnostic-tools/ |
List available edge server locations
Lists active Akamai edge server locations from which you can
run diagnostic tools. Use any id
value from the
response object
for use in other edge server location-based operations.
See Location
for details on the response object.
GET /diagnostic-tools/
Status 200
application/json
Object type: Location
Download schema: available.json
Response body:
{
"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"
}
]
}
Run dig from an edge server location
Run dig
on a hostname to get DNS information, associating
hostnames and IP addresses, from a location within the
Akamai network not local to you.
Specify any locationId
parameter from the output of
List available edge server locations.
Specify the hostName
as a query parameter, and an
optional DNS queryType
.
See the
Dig
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
locationId |
String | NewYork-US |
The location on the Akamai edge network from which you want to test connectivity. Run the List available edge server locations operation for values. |
Required query parameters | |||
hostName |
String | www.test.com |
The hostname to which to run the test. |
Optional query parameters | |||
queryType |
Enumeration | A |
The type of DNS record, either A , AAAA , CNAME , MX , NS , PTR , or SOA . The default is A . |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Dig
Download schema: digInfo.json
Response body:
{
"digInfo": {
"hostname": "www.example.com.",
"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;; ",
"answerSection": [
{
"domain": "www.example.com.",
"ttl": 5,
"recordClass": "IN",
"recordType": "A",
"preferenceValues": null,
"value": "NN.NN.NN.NN"
}
],
"authoritySection": [
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "a.example.net."
},
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "b.example.net."
}
]
}
}
Run mtr from an edge server location
Run mtr
to check connectivity between a domain and a
location within the Akamai network not local to you.
Specify any locationId
parameter from the output of
List available edge server locations.
Specify the destinationDomain
to which you want to
test connectivity.
Optionally specify resolveDns
to use DNS to resolve hostnames.
The output shows the network hops a packet of data takes,
and the duration of each hop.
See the
Mtr
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
locationId |
String | NewYork-US |
The location on the Akamai edge network from which you want to test connectivity. Run the List available edge server locations operation for values. |
Required query parameters | |||
destinationDomain |
String | developer.test.com |
The domain name to which to test connectivity. |
Optional query parameters | |||
resolveDns |
Boolean | true |
Whether to use DNS to resolve hostnames. When disabled, output features only IP addresses. |
Status 200
application/json
Object type: Mtr
Download schema: mtrData.json
Response body:
{
"mtr": {
"source": "123.123.123.123",
"destination": "www.example.com",
"startTime": "2016-02-01T23:49:01Z",
"host": "aNNN-NNN-NNN-NN.deploy.example.net",
"packetLoss": 0.0,
"avgLatency": 0.3,
"analysis": "",
"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",
"hops": [
{
"number": 1,
"host": "NNNN:NNN:N:NNN::N",
"loss": 0.0,
"sent": 10,
"last": 0.2,
"avg": 0.3,
"best": 0.2,
"worst": 0.8,
"stDev": 0.0
},
{
"number": 2,
"host": "XXN-NNN.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.3,
"avg": 4.6,
"best": 0.3,
"worst": 33.9,
"stDev": 10.7
},
{
"number": 3,
"host": "XX-N-N-N.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.6,
"avg": 0.4,
"best": 0.3,
"worst": 0.6,
"stDev": 0.0
}
]
}
}
Run curl from an edge server location
Run curl
based on a location within the Akamai network.
Specify any locationId
parameter from the output of
List available edge server locations.
In the request object,
specify a url
to download and userAgent
.
See the Curl object
for details on the response data.
POST /diagnostic-tools/
Sample: /diagnostic-tools/
Content-Type: application/json
Object type: CurlRequest
Download schema: curlRequest.json
Request body:
{
"url": "http://developer.test.com/index.html",
"userAgent": "Mozilla/5.0"
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
locationId |
String | NewYork-US |
The location on the Akamai edge network from which you want to test connectivity. Run the List available edge server locations operation for values. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Curl
Download schema: curlResults.json
Response body:
{
"curlResults": {
"httpStatusCode": 403,
"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": {
"Server": "AkamaiGHost",
"Connection": "close",
"Expires": "Fri, 22 Jan 2016 02:01:42 GMT",
"Mime-Version": "1.0",
"Content-Length": "270",
"Date": "Fri, 22 Jan 2016 02:01:42 GMT",
"Content-Type": "text/html"
}
}
}
Get log lines from an edge server location
Lists log lines from a location within the Akamai network,
using parameters to filter the data.
Logs provide low-level details on how each request was
handled, which you can use to troubleshoot caching and
performance issues, and to ensure the correct set of Akamai
features was applied to the traffic.
Data is generally available for 48 hours after the traffic occurs.
Specify any locationId
parameter from the output of
List available edge server locations.
See the LogLines object
for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
locationId |
String | NewYork-US |
The location on the Akamai edge network from which you want to test connectivity. Run the List available edge server locations operation for values. |
Required query parameters | |||
endTime |
String | 2016-02-01T22:23:00Z |
An ISO 8601 timestamp for a point of time in the past when the log search window ends. |
Optional query parameters | |||
arl |
String | www.example.com |
Filter by the ARL log field value. |
clientIp |
String | 123.123.13.123 |
Filter by IP address specified in the Client-IP log field. |
cpCode |
Integer | 12345 |
Filter by CP code. |
duration |
Integer | 30 |
The number of minutes before the endTime for which to collect logs, 30 by default, and a maximum 360 for six hours. |
hostHeader |
String | www.example.com |
Filter by the Host header log field value. |
httpStatusCode |
Integer | 500 |
Filter by HTTP status code. |
logType |
Enumeration | r |
Filter the type of log lines, either r for incoming client requests, or f for requests to other edge servers or to the origin server. Any f log type specifying a Forward-IP in the 10.x.x.x range means the request was forwarded to another edge server. |
maxLogLines |
Integer | 200 |
The maximum number of log lines to include in the results, 200 by default and no more than 1000 . |
objStatus |
String | d |
Filter by single-character code that provides details the requested content. See Object status codes for details on each code. |
requestId |
String | 22828292 |
The end user requestId to filter by. |
userAgent |
String | Chrome |
Filter by the User-Agent log field. |
Status 200
application/json
Object type: LogLines
Download schema: logLines.json
Response body:
{
"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"
]
}
}
NOTE: Log searches by server location may yield empty data for content served from the Secure Content Delivery Network (ESSL). In that case, Run dig from an edge server location to get the IP address, then Get log lines from an IP address. The edge IP address is also available in origin server logs, in response headers for specific HTTP requests, and in a secure ESSL domain’s DNS resolution.
Get CDN status
Checks whether the specified ipAddress
is part of the Akamai edge network. The
IsCdnIp response reflects this as a
boolean.
This operation gets the data directly.
To avoid any latency problems, run
Launch a CDN status request
to access the data asynchronously.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: IsCdnIp
Download schema: isCDNIP.json
Response body:
{
"isCdnIp": false
}
Launch a CDN status request
Provides the same functionality as the
Get CDN status
operation, but this launches a request to retrieve the
data asynchronously.
Check the PollResponse’s link
after the retryAfter
interval or use the requestId
to
Check a CDN status request.
For details, see
Asynchronous requests.
POST /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Status 202
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Download schema: isCDNIPPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/is-cdn-ip-requests/1.1.1.1",
"retryAfter": 3
}
Get geolocation for an IP address
Provides the geolocation for an ipAddress
within the Akamai network.
This operation’s requests are limited to 500 per day.
See the
Geolocation
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Geolocation
Download schema: geoLocation.json
Response body:
{
"geoLocation": {
"clientIp": "NNN.NNN.NNN.NNN",
"countryCode": "US",
"regionCode": "NY",
"city": "NEWYORK",
"dma": 501,
"msa": 5602,
"pmsa": 5600,
"areaCode": "212, 213",
"latitude": 40.75,
"longitude": -73.9967,
"county": "NEWYORK",
"continent": "NA",
"fips": "36061",
"timeZone": "EST",
"network": null,
"networkType": null,
"zipCode": "10001-10014+10016-10041+10043-10045+10055+10060+10065",
"throughput": "vhigh",
"asNum": 1299,
"proxy": null
}
}
Run dig from an IP address
Run dig
on a hostname to get DNS information, associating
hostnames and IP addresses, from an IP address
within the Akamai network
not local to you.
Specify the hostName
as a query parameter, and an
optional DNS queryType
.
See the
Dig
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Required query parameters | |||
hostName |
String | www.test.com |
The hostname to which to run the test. |
Optional query parameters | |||
queryType |
Enumeration | A |
The type of DNS record, either A , AAAA , CNAME , MX , NS , PTR , or SOA . The default is A . |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Dig
Download schema: digInfo.json
Response body:
{
"digInfo": {
"hostname": "www.example.com.",
"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;; ",
"answerSection": [
{
"domain": "www.example.com.",
"ttl": 5,
"recordClass": "IN",
"recordType": "A",
"preferenceValues": null,
"value": "NN.NN.NN.NN"
}
],
"authoritySection": [
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "a.example.net."
},
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "b.example.net."
}
]
}
}
Run mtr from an IP address
Run mtr
to check connectivity between a domain
and an IP address
within the Akamai network.
Specify the destinationDomain
to which you want to
test connectivity.
Optionally specify resolveDns
to use DNS to resolve hostnames.
The output shows the network hops a packet of data takes,
and the duration of each hop.
See the
Mtr
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Required query parameters | |||
destinationDomain |
String | developer.test.com |
The domain name to which to test connectivity. |
Optional query parameters | |||
resolveDns |
Boolean | true |
Whether to use DNS to resolve hostnames. When disabled, output features only IP addresses. |
Status 200
application/json
Object type: Mtr
Download schema: mtrData.json
Response body:
{
"mtr": {
"source": "123.123.123.123",
"destination": "www.example.com",
"startTime": "2016-02-01T23:49:01Z",
"host": "aNNN-NNN-NNN-NN.deploy.example.net",
"packetLoss": 0.0,
"avgLatency": 0.3,
"analysis": "",
"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",
"hops": [
{
"number": 1,
"host": "NNNN:NNN:N:NNN::N",
"loss": 0.0,
"sent": 10,
"last": 0.2,
"avg": 0.3,
"best": 0.2,
"worst": 0.8,
"stDev": 0.0
},
{
"number": 2,
"host": "XXN-NNN.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.3,
"avg": 4.6,
"best": 0.3,
"worst": 33.9,
"stDev": 10.7
},
{
"number": 3,
"host": "XX-N-N-N.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.6,
"avg": 0.4,
"best": 0.3,
"worst": 0.6,
"stDev": 0.0
}
]
}
}
Run curl from an IP address
Run curl
based on an IP address
within the Akamai network.
In the request object,
specify a url
to download and userAgent
.
Specify a parameter for the ipAddress
you want to test.
See the Curl object
for details on the response data.
POST /diagnostic-tools/
Sample: /diagnostic-tools/
Content-Type: application/json
Object type: CurlRequest
Download schema: curlRequest.json
Request body:
{
"url": "http://developer.test.com/index.html",
"userAgent": "Mozilla/5.0"
}
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Curl
Download schema: curlResults.json
Response body:
{
"curlResults": {
"httpStatusCode": 403,
"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": {
"Server": "AkamaiGHost",
"Connection": "close",
"Expires": "Fri, 22 Jan 2016 02:01:42 GMT",
"Mime-Version": "1.0",
"Content-Length": "270",
"Date": "Fri, 22 Jan 2016 02:01:42 GMT",
"Content-Type": "text/html"
}
}
}
Get log lines from an IP address
Lists log lines from an IP address within the Akamai network, using parameters to filter the data. Logs provide low-level details on how each request was handled, which you can use to troubleshoot caching and performance issues, and to ensure the correct set of Akamai features was applied to the traffic. Data is generally available for 48 hours after the traffic occurs. See the LogLines object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
ipAddress |
String | 1.1.1.1 |
The IP address of the server from which to run the diagnostics test. |
Required query parameters | |||
endTime |
String | 2016-02-01T22:23:00Z |
An ISO 8601 timestamp for a point of time in the past when the log search window ends. |
Optional query parameters | |||
arl |
String | www.example.com |
Filter by the ARL log field value. |
clientIp |
String | 123.123.13.123 |
Filter by IP address specified in the Client-IP log field. |
cpCode |
Integer | 12345 |
Filter by CP code. |
duration |
Integer | 30 |
The number of minutes before the endTime for which to collect logs, 30 by default, and a maximum 360 for six hours. |
hostHeader |
String | www.example.com |
Filter by the Host header log field value. |
httpStatusCode |
Integer | 500 |
Filter by HTTP status code. |
logType |
Enumeration | r |
Filter the type of log lines, either r for incoming client requests, or f for requests to other edge servers or to the origin server. Any f log type specifying a Forward-IP in the 10.x.x.x range means the request was forwarded to another edge server. |
maxLogLines |
Integer | 200 |
The maximum number of log lines to include in the results, 200 by default and no more than 1000 . |
objStatus |
String | d |
Filter by single-character code that provides details the requested content. See Object status codes for details on each code. |
requestId |
String | 22828292 |
The end user requestId to filter by. |
userAgent |
String | Chrome |
Filter by the User-Agent log field. |
Status 200
application/json
Object type: LogLines
Download schema: logLines.json
Response body:
{
"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"
]
}
}
Check a CDN status request
After running the
Launch a CDN status request
operation, this checks the status of an
asynchronous request
for data.
A 200 PollResponse
with a Retry-After
header
indicates the request is still processing.
When the data is ready,
a 303 response provides a Location
header
where you can GET the data using the
Get CDN status asynchronously
operation.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous request to check CDN status, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Headers:
Retry-After: 3
Download schema: isCDNIPPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/is-cdn-ip-requests/1.1.1.1",
"retryAfter": 3
}
Status 303
Headers:
Location: /is-cdn-ip-requests/67368292/is-cdn-ip
Get CDN status asynchronously
Provides the same functionality as the Get CDN status operation, but accesses the data asynchronously after running Launch a CDN status request. Data is available at this operation’s URL for at least 24 hours. See Asynchronous requests for details.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous request to check CDN status, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Object type: IsCdnIp
Download schema: isCDNIP.json
Response body:
{
"isCdnIp": false
}
List end user groups
Lists created groups and provides full details for each. To create a group, run the Create a group operation.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
Optional query parameters | |||
duration |
Integer | 20 |
The number of days from which you want to get the list. |
status |
Enumeration | active |
The status of the diagnostic link, either active , exhausted for links that got 50 data submissions, or expired for links older than 7 days. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: DiagnosticGroups
Download schema: endUserDiagnosticData.json
Response body:
{
"endUserDiagnosticLinks": [
{
"diagnosticLinkId": "342",
"groupName": "rl132",
"url": "https://www.example.com",
"createdDate": "2020-04-15T07:43:56Z",
"diagnosticLink": "www.testing.t1info.net/abc123",
"status": "active",
"recordCount": 0,
"diagLinkCode": "abc123",
"caseIds": [
"F-CS-0000000",
"F-CS-0000000"
]
},
{
"diagnosticLinkId": "341",
"groupName": "rl131",
"url": "https://www.example.com",
"createdDate": "2020-04-15T07:43:55Z",
"diagnosticLink": "www.testing.t1info.net/def123",
"status": "active",
"recordCount": 0,
"diagLinkCode": "def123",
"caseIds": [
"F-CS-0000000",
"F-CS-0000000"
]
}
]
}
Create a diagnostic link for a group
Creates a group you want to gather diagnostic data for. It also generates a diagnostic link that you can send to end users of a group’s hostname or URL. When end users click the link, the tool gathers necessary diagnostic data.
POST /diagnostic-tools/
Content-Type: application/json
Object type: DiagnosticLinkRequest
Download schema: diagnosticLinkRequestBody.json
Request body:
{
"groupName": "test",
"url": "http://www.test.com"
}
Status 201
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: DiagnosticLinkResponse
Download schema: diagnosticLink.json
Response body:
{
"diagnosticLink": "http://www.t1info.net/5h23bc"
}
Get diagnostic data for a group
Returns diagnostic data submitted by end users.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
diagnosticLinkId |
String | 341 |
A unique identifier for the group’s diagnostic link request. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: GroupDiagnosticData
Download schema: diagnosticLinkId.json
Response body:
{
"groupName": "DuplicateGroupJCaGJ",
"createdDate": "2020-03-24T03:46:35Z",
"url": "https://www.adobe.com",
"diagnosticLink": "nully823b4",
"status": "expired",
"diagnosticRecords": [
{
"endUserDataId": "761",
"cipher": "tls1.3/TLS_AES_256_GCM_SHA384",
"cookie": true,
"protocol": "HTTP/2",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
"createdDate": "2020-03-24T11:42:35Z",
"uniqueId": 1,
"clientDnsIpv6": {
"id": "3625",
"ip": "00:00:0:0:0:0:000:abc/00",
"ipType": "DNSV6 IP",
"location": {
"city": "CHENNAI",
"state": "TN",
"country": "IN",
"asNum": "AS0000"
}
},
"clientIpv4": {
"id": "3630",
"ip": "00.00.00.00",
"ipType": "CLIENTV4 IP",
"associatedDnsIp": "3629",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS0000"
}
},
"clientIpv6": {
"id": "3631",
"ip": "00:00:00:00::ab",
"ipType": "CLIENTV6 IP",
"associatedDnsIp": "3629",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS9498"
}
},
"clientDnsIpv4": {
"id": "3620",
"ip": "00.00.000.00/00",
"ipType": "DNSV4 IP",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS0000"
}
},
"preferredClientIp": {
"id": "3624",
"ip": "00:00:00:00::ab",
"ipType": "PREFERRED CLIENT IP",
"associatedDnsIp": "3620",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS0000"
}
},
"edgeIps": [
{
"id": "3621",
"ip": "00.00.00.00",
"ipType": "EDGE IP",
"associatedDnsIp": "3620",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS000"
}
},
{
"id": "3622",
"ip": "00:00:00:00::0efd",
"ipType": "EDGE IP",
"associatedDnsIp": "3620",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS000"
}
}
],
"mtrResults": [
{
"source": "00:00:00:00::00",
"destination": "00:00:00:00:00:000:00:00",
"startTime": "2020-04-21T09:25:11Z",
"host": "0-00-00-00.abc.abc",
"packetLoss": 100.0,
"avgLatency": 0.0,
"analysis": "Improperly configured Network or Firewall at Destination",
"mtrDataId": "1",
"edgeIds": [
"3626",
"3627"
],
"hops": [
{
"num": 1,
"host": "00.00.00.00",
"loss": 50.0,
"sent": 10,
"last": 2537.0,
"avg": 2287.0,
"best": 2047.0,
"worst": 2609.0,
"stDev": 264.1
},
{
"num": 2,
"host": "00.00.00.00",
"loss": 100.0,
"sent": 10,
"last": 0.0,
"avg": 0.0,
"best": 0.0,
"worst": 0.0,
"stDev": 0.0
}
]
}
]
}
]
}
List GTM properties
List all Global Traffic Management properties (subdomains) to which you have access. See the response’s GtmProperty object for details.
GET /diagnostic-tools/
Status 200
application/json
Object type: GtmProperty
Download schema: gtmProperties.json
Response body:
{
"gtmProperties": [
{
"property": "origin",
"domain": "akadns.net",
"hostName": "origin.akadns.net"
},
{
"property": "origin-r3h",
"domain": "akadns.net",
"hostName": "origin-r3h.akadns.net"
}
]
}
List IP addresses for a GTM property
Gets test and target IPs for a domain and property.
Run List GTM properties
for domain
and property
parameter values. See
GtmPropertyIps
for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
property |
String | origin |
The Global Traffic Management property for which to collect IPs. |
domain |
String | akadns.net |
The Global Traffic Management domain to which the property subdomain belongs. |
Status 200
application/json
Object type: GtmPropertyIps
Download schema: gtmPropertyIps.json
Response body:
{
"gtmPropertyIps": {
"property": "origin",
"domain": "akadns.net",
"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"
],
"targetIps": [
"204.8.50.81"
]
}
}
Get error statistics
Get error statistics on a URL’s traffic from edge servers to
both clients and the origin.
Specify a url
parameter in the request.
See Estats for information on the response
object. This operation gets the data directly. To avoid any
latency problems, run
Launch an error statistics request
to access the data asynchronously.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
Required query parameters | |||
url |
String | http://www.test.com |
The URL for which to gather error statistics. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Estats
Download schema: estats.json
Response body:
{
"eStats": {
"cpCode": 11111,
"edgeErrors": 188,
"edgeHits": 3534,
"edgeFailurePercentage": 5.0,
"originErrors": 152,
"originHits": 765,
"originFailurePercentage": 20.0,
"topEdgeIpsWithSuccessFromOrigin": [],
"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
}
],
"topEdgeIpsWithError": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 7,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 16031,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 5,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 20321,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithErrorFromOrigin": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 15,
"httpStatus": 401,
"objectStatus": "aoxPRW",
"region": 23308,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxPRW&httpStatusCode=401&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 12,
"httpStatus": 400,
"objectStatus": "aoxCPRW",
"region": 20449,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxCPRW&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithSuccess": [
{
"edgeI": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 13,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 21524
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 9,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 24168
}
]
}
}
Launch an error statistics request
Provides the same
functionality as the
Get error statistics
operation, but this launches a request to retrieve the data
asynchronously.
Instead of a query parameter, supply an
EstatsRequest
object containing the url
for which you want error statistics.
Check the PollResponse’s link
after the retryAfter
interval or use the requestId
to
Check an error statistics request.
For details, see
Asynchronous requests.
POST /diagnostic-tools/
Content-Type: application/json
Object type: EstatsRequest
Download schema: estatsPostRequest.json
Request body:
{
"url": "http://www.test.com"
}
Status 202
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Download schema: estatsPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/estats-requests/11111",
"retryAfter": 10
}
Get CP code error statistics
Get error statistics on a CP code’s traffic from edge servers to
both clients and the origin.
Specify a cpCode
parameter in the request.
See Estats for information on the response
object.
This operation gets the data directly.
To avoid any latency problems, run
Launch a CP code error statistics request
to access the data asynchronously.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
cpCode |
String | 11111 |
The CP code for which to retrieve error statistics. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: Estats
Download schema: estats.json
Response body:
{
"eStats": {
"cpCode": 11111,
"edgeErrors": 188,
"edgeHits": 3534,
"edgeFailurePercentage": 5.0,
"originErrors": 152,
"originHits": 765,
"originFailurePercentage": 20.0,
"topEdgeIpsWithSuccessFromOrigin": [],
"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
}
],
"topEdgeIpsWithError": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 7,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 16031,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 5,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 20321,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithErrorFromOrigin": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 15,
"httpStatus": 401,
"objectStatus": "aoxPRW",
"region": 23308,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxPRW&httpStatusCode=401&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 12,
"httpStatus": 400,
"objectStatus": "aoxCPRW",
"region": 20449,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxCPRW&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithSuccess": [
{
"edgeI": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 13,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 21524
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 9,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 24168
}
]
}
}
Launch a CP code error statistics request
Provides the same functionality as the
Get CP code error statistics
operation, but this launches a request to retrieve the data
asynchronously.
Check the PollResponse’s link
after the retryAfter
interval or use the requestId
to
Check an error statistics request.
For details, see
Asynchronous requests.
POST /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
cpCode |
String | 11111 |
The CP code for which to retrieve error statistics. |
Status 202
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Download schema: estatsPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/estats-requests/11111",
"retryAfter": 10
}
Check an error statistics request
After running the
Launch an error statistics request
operation, this checks the status of an
asynchronous request
for data.
A 200 PollResponse
with a Retry-After
header
indicates the request is still processing.
When the data is ready,
a 303 response provides a Location
header
where you can GET the data using the
Get error statistics asynchronously
operation.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 2567162 |
Unique identifier for each asynchronous error statistics request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Headers:
Retry-After: 10
Response body:
{
"requestId": "88972782",
"link": "/estats-requests/11111",
"retryAfter": 10
}
Status 303
Headers:
Location: /diagnostic-tools/v2/estats-requests/123938
Get error statistics asynchronously
Provides the same functionality as the Get error statistics operation, but accesses the data asynchronously after running Launch an error statistics request. Data is available at this operation’s URL for at least 24 hours. See Asynchronous requests for details.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 2567162 |
Unique identifier for each asynchronous error statistics request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Response body:
{
"eStats": {
"cpCode": 11111,
"edgeErrors": 188,
"edgeHits": 3534,
"edgeFailurePercentage": 5.0,
"originErrors": 152,
"originHits": 765,
"originFailurePercentage": 20.0,
"topEdgeIpsWithSuccessFromOrigin": [],
"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
}
],
"topEdgeIpsWithError": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 7,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 16031,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 5,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 20321,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithErrorFromOrigin": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 15,
"httpStatus": 401,
"objectStatus": "aoxPRW",
"region": 23308,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxPRW&httpStatusCode=401&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 12,
"httpStatus": 400,
"objectStatus": "aoxCPRW",
"region": 20449,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxCPRW&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithSuccess": [
{
"edgeI": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 13,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 21524
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 9,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 24168
}
]
}
}
Translate an error
Get information about error strings produced by edge servers when a request to retrieve content fails. The error represents an instance of a problem, and this operation gets details on what happened. See the TranslatedError object for details on the response data. This operation gets the data directly. To avoid any latency problems, run Launch an error translation request to access the data asynchronously.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
errorCode |
String | 9.6f64d440.1318965461.2f2b078 |
The error reference code to translate. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: TranslatedError
Download schema: translatedError.json
Response body:
{
"translatedError": {
"url": "http://etranslator.edgesuite.net/ERR_READ_TIMEOUT",
"httpResponseCode": 504,
"timestamp": "Thu, Dec 17, 2015 20:13 GMT",
"epochTime": 1450383180,
"clientIp": "^ (Client IP - NA)",
"connectingIp": "23.79.236.14 (CAMBRIDGE,MA,US)",
"serverIp": "80.67.64.110 (CAMBRIDGE,MA,US)",
"originHostname": "akamai1b.download.akamai.com",
"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",
"requestMethod": "GET",
"reasonForFailure": "The forward connection to the origin server from the edge server timed out.",
"wafDetails": "-",
"logs": [
{
"description": "Edge Server: 80.67.64.110 going forward to 23.15.201.13",
"fields": {
"Ghost IP": "80.67.64.110",
"Forward Request": "f",
"timestamp": "1450383215.030",
"content bytes received": "0",
"total estimated bytes received": "0",
"Forward IP": "23.15.201.13",
"client IP (p-prefresh)": "23.79.236.14",
"HTTP method (GET HEAD etc)": "GET",
"ARL": "/D/1682/3101/000/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "0",
"content-type": "-",
"IMS (i-ims)": "-",
"SSL": "TLSv1",
"Request Number": "0",
"Edgescape": "-",
"Forward Hostname": "akamai1b.download.akamai.com",
"Ghost request header size": "692",
"Ghost request size": "692",
"SSL overhead bytes": "4181",
"Forward ARL (if rewritten in metadata)": "/D/1682/3101/000/akamai1b.download.akamai.com/3101/crackme",
"Request id": "1d5865b",
"received_b": "ERR_READ_TIMEOUT|before_resp_hdrs",
"object-max-age_s": "0",
"Sureroute2info": "-",
"range": "-",
"SureRouteRaceStat-indirRoute": "-",
"SureRouteRace-stat-dirRoute": "-",
"Forward-side-http-overhead": "696",
"Reason for Throttling": "0",
"Time spent deferring forward read": "0",
"Object Status 2": "-",
"Multi-Feature Status Field": "-",
"Multi-Purpose Key/Value Field": "mtse=g|0;aid=87676;pfs=c;hnd=1|n",
"Real IP of Forward Ghost (ESSL)": "-"
}
},
{
"description": "Edge Server: 80.67.64.110 response to 23.79.236.14",
"fields": {
"Ghost IP": "80.67.64.110",
"Client Request": "r",
"timestamp": "1450383215.018",
"object size": "250",
"content bytes served": "250",
"total estimated bytes served": "568",
"client IP": "23.79.236.14",
"HTTP method": "GET",
"ARL": "/^/1682/3101/^/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "504",
"error": "ERR_READ_TIMEOUT",
"content-type": "text/html",
"host header": "etranslator.edgesuite.net",
"cookie": "^",
"referrer": "^",
"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",
"IMS": "-",
"SSL": "U",
"persistent request number": "1",
"Client request header size": "454",
"Accept-Language": "^",
"SSL overhead bytes": "4538",
"Serial number and map": "1682.^",
"Request byte-range": "-",
"Uncompressed length": "-",
"Other-Error-Indication": "^",
"dca-data": "-",
"X-Forwarded-For": "-",
"X-Akamai-Edge-Log": "-",
"object-max-age_s": "-",
"custom-field": "^",
"object-status-2": "oW",
"ssl-byte": "^",
"c-http-overhead": "^",
"Client-rate-limiting": "^",
"Client-request-body-size": "-",
"flv seek processing info": "^",
"True client ip": "^",
"Web Application Firewall Information": "-",
"Edge Tokenization Information": "-",
"Origin File Size": "^",
"HTTP Streaming info": "-",
"Reason for not caching (priv/released)": "^",
"Rate Accounting info": "^"
}
}
]
}
}
Launch an error translation request
Provides the same functionality as the
Translate an error
operation, but this launches a request to retrieve the data
asynchronously.
Check the PollResponse’s link
after the retryAfter
interval or use the requestId
to
Check an error translation request.
For details, see
Asynchronous requests.
POST /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
errorCode |
String | 9.6f64d440.1318965461.2f2b078 |
The error reference code to translate. |
Status 202
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Download schema: translateErrorPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/translate-error-requests/233233",
"retryAfter": 10
}
Check an error translation request
After running the
Launch an error translation request
operation, this checks the status of an
asynchronous request
for data.
A 200 PollResponse
with a Retry-After
header
indicates the request is still processing.
When the data is ready,
a 303 response provides a Location
header
where you can GET the data using the
Translate an error asynchronously
operation.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous error translation request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Headers:
Retry-After: 10
Download schema: translateErrorPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/translate-error-requests/233233",
"retryAfter": 10
}
Status 303
Headers:
Location: /translate-error-requests/67368292/translated-error
Translate an error asynchronously
Provides the same functionality as the Translate an error operation, but accesses the data asynchronously after running Launch an error translation request. Data is available at this operation’s URL for at least 24 hours. See Asynchronous requests for details.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous error translation request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Object type: TranslatedError
Download schema: translatedError.json
Response body:
{
"translatedError": {
"url": "http://etranslator.edgesuite.net/ERR_READ_TIMEOUT",
"httpResponseCode": 504,
"timestamp": "Thu, Dec 17, 2015 20:13 GMT",
"epochTime": 1450383180,
"clientIp": "^ (Client IP - NA)",
"connectingIp": "23.79.236.14 (CAMBRIDGE,MA,US)",
"serverIp": "80.67.64.110 (CAMBRIDGE,MA,US)",
"originHostname": "akamai1b.download.akamai.com",
"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",
"requestMethod": "GET",
"reasonForFailure": "The forward connection to the origin server from the edge server timed out.",
"wafDetails": "-",
"logs": [
{
"description": "Edge Server: 80.67.64.110 going forward to 23.15.201.13",
"fields": {
"Ghost IP": "80.67.64.110",
"Forward Request": "f",
"timestamp": "1450383215.030",
"content bytes received": "0",
"total estimated bytes received": "0",
"Forward IP": "23.15.201.13",
"client IP (p-prefresh)": "23.79.236.14",
"HTTP method (GET HEAD etc)": "GET",
"ARL": "/D/1682/3101/000/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "0",
"content-type": "-",
"IMS (i-ims)": "-",
"SSL": "TLSv1",
"Request Number": "0",
"Edgescape": "-",
"Forward Hostname": "akamai1b.download.akamai.com",
"Ghost request header size": "692",
"Ghost request size": "692",
"SSL overhead bytes": "4181",
"Forward ARL (if rewritten in metadata)": "/D/1682/3101/000/akamai1b.download.akamai.com/3101/crackme",
"Request id": "1d5865b",
"received_b": "ERR_READ_TIMEOUT|before_resp_hdrs",
"object-max-age_s": "0",
"Sureroute2info": "-",
"range": "-",
"SureRouteRaceStat-indirRoute": "-",
"SureRouteRace-stat-dirRoute": "-",
"Forward-side-http-overhead": "696",
"Reason for Throttling": "0",
"Time spent deferring forward read": "0",
"Object Status 2": "-",
"Multi-Feature Status Field": "-",
"Multi-Purpose Key/Value Field": "mtse=g|0;aid=87676;pfs=c;hnd=1|n",
"Real IP of Forward Ghost (ESSL)": "-"
}
},
{
"description": "Edge Server: 80.67.64.110 response to 23.79.236.14",
"fields": {
"Ghost IP": "80.67.64.110",
"Client Request": "r",
"timestamp": "1450383215.018",
"object size": "250",
"content bytes served": "250",
"total estimated bytes served": "568",
"client IP": "23.79.236.14",
"HTTP method": "GET",
"ARL": "/^/1682/3101/^/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "504",
"error": "ERR_READ_TIMEOUT",
"content-type": "text/html",
"host header": "etranslator.edgesuite.net",
"cookie": "^",
"referrer": "^",
"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",
"IMS": "-",
"SSL": "U",
"persistent request number": "1",
"Client request header size": "454",
"Accept-Language": "^",
"SSL overhead bytes": "4538",
"Serial number and map": "1682.^",
"Request byte-range": "-",
"Uncompressed length": "-",
"Other-Error-Indication": "^",
"dca-data": "-",
"X-Forwarded-For": "-",
"X-Akamai-Edge-Log": "-",
"object-max-age_s": "-",
"custom-field": "^",
"object-status-2": "oW",
"ssl-byte": "^",
"c-http-overhead": "^",
"Client-rate-limiting": "^",
"Client-request-body-size": "-",
"flv seek processing info": "^",
"True client ip": "^",
"Web Application Firewall Information": "-",
"Edge Tokenization Information": "-",
"Origin File Size": "^",
"HTTP Streaming info": "-",
"Reason for not caching (priv/released)": "^",
"Rate Accounting info": "^"
}
}
]
}
}
Debug a URL
Get various HTTP and DNS information for a URL.
Specify a url
query parameter,
and optionally test a specific edgeIp
with a given header
.
See the UrlDebug object for information on
the response data.
This operation gets the data directly.
To avoid any latency problems, run
Launch a URL debug request
to access the data asynchronously.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
Required query parameters | |||
url |
String | http://www.test.com |
The URL for which to gather error statistics. |
Optional query parameters | |||
edgeIp |
String | 123.123.123.123 |
The edge server IP address to test the URL against, otherwise a random server by default. |
header |
String | User-Agent: Mozilla/5.0 |
Repeatable. Any additional headers to add to the request. Repeat the parameter to specify more than one header. |
Status 200
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Object type: UrlDebug
Download schema: urlDebug.json
Response body:
{
"urlDebug": {
"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 "
],
"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"
],
"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": " - "
}
]
}
}
Launch a URL debug request
Provides the same functionality as
the Debug a URL operation, but
this launches a request to retrieve the data
asynchronously.
Check the PollResponse’s link
after the retryAfter
interval or use the requestId
to
Check a URL debug request.
For details, see
Asynchronous requests.
POST /diagnostic-tools/
Content-Type: application/json
Object type: UrlDebugRequest
Download schema: urlDebugPostBody.json
Request body:
{
"url": "http://www.test.com",
"edgeIp": "123.123.123.123",
"headers": [
"Location:http//test.com",
"Content-Type:application/json"
]
}
Status 202
application/json
Headers:
X-RateLimit-Limit: 10
X-RateLimit-Remaining: 5
Download schema: urlDebugPostResponse.json
Response body:
{
"requestId": "88972782",
"link": "/url-debug-requests/88972782",
"retryAfter": 10
}
Check a URL debug request
After running the
Launch a URL debug request
operation, this checks the status of an
asynchronous request
for data.
A 200 PollResponse
with a Retry-After
header
indicates the request is still processing.
When the data is ready,
a 303 response provides a Location
header
where you can GET the data using the
Debug a URL asynchronously
operation.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous URL debug request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Headers:
Retry-After: 10
Object type: UrlDebugRequest
Download schema: urlDebugPostBody.json
Response body:
{
"requestId": "88972782",
"link": "/url-debug-requests/88972782",
"retryAfter": 10
}
Status 303
Headers:
Location: /url-debug-requests/67368292/debugged-url
Debug a URL asynchronously
Provides the same functionality as the Debug a URL operation, but accesses the data asynchronously after running Launch a URL debug request. Data is available at this operation’s URL for at least 24 hours. See Asynchronous requests for details.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
URL path parameters | |||
requestId |
String | 67368292 |
Unique identifier for each asynchronous URL debug request, used to track progress. For details, see Asynchronous requests. |
Status 200
application/json
Object type: UrlDebug
Download schema: urlDebug.json
Response body:
{
"urlDebug": {
"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 "
],
"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"
],
"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": " - "
}
]
}
}
Get a translated URL
Gets high-level information about an Akamai-optimized URL (ARL),
such as its time to live, origin server, and associated CP code.
Specify the request’s url
as a query parameter, and see the
TranslatedUrl
object for details on the response data.
GET /diagnostic-tools/
Sample: /diagnostic-tools/
Parameter | Type | Sample | Description |
---|---|---|---|
Required query parameters | |||
url |
String | http://www.test.com |
The URL for which to gather error statistics. |
Status 200
application/json
Object type: TranslatedUrl
Download schema: translatedUrl.json
Response body:
{
"translatedUrl": {
"typeCode": "Object changes when ARL changes",
"originServer": "origin.example.com",
"cpCode": 12345,
"serialNumber": 54321,
"ttl": "Infinite"
}
}
Get an ESI debugging report
This operation provides a debugging report on the ESI code of your source page and all pages that the source page references.
POST /diagnostic-tools/
Content-Type: application/json
Object type: ESIQuery
Download schema: inputBody.json
Request body:
{
"url": "https://www.abc.com",
"clientIP": "192.168.76.67",
"originServer": "test.server",
"clientRequestHeaders": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8;"
}
}
Status 200
application/json
Object type: ESIReport
Download schema: esiDebugReport.json
Response body:
{
"sourceDebugPage": {
"pageLink": "http://www.abc.com/",
"enumeratedSource": [
"//1 ",
"//2 <!DOCTYPE html><html class=\"no-js\">",
"//3 <head>",
"//4 <meta charset=\"utf-8\">",
"//5 <esi:choose>",
"//6 <esi:when test=\"$len($(HTTP_HOST{0}))>1\">",
"//21 <esi:assign name=\"currenthost\" value=\"$(HTTP_HOST{0})\"/>",
"//22 </esi:when>",
"//23 <esi:otherwise>",
"//24 <esi:assign name=\"currenthost\" value=\"$(HTTP_HOST)\"/>",
"//25 </esi:otherwise>",
"//26 </esi:choose>",
"//27 <esi:choose>",
"//28 <esi:when test=\"$substr( $(currenthost), 0, $index($(currenthost), '.')) == inactive\">",
"//29 <esi:assign name=\"versionPath\" value=\"inactiveversion\"/>",
"//30 </esi:when>",
"//31 <esi:when test=\"$substr( $(currenthost), 0, $index($(currenthost), '.')) == deploy\">",
"//32 <esi:assign name=\"versionPath\" value=\"inactiveversion\"/>",
"//33 </esi:when>",
"//34 <esi:otherwise>",
"//35 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//36 </esi:otherwise>",
"//37 </esi:choose>",
"//38 <!-- ESI cdn script include for www -->",
"//39 <script type=\"text/javascript\" src='<esi:include src=\"http://www.abcinclude.com\"></esi:include>/clientlibs/abc.min.js'></script>"
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abc.com",
"HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8;",
"HTTP_CONTENT_LENGTH: 14041",
"HTTP_CONTENT_LOCATION:",
"HTTP_CONTENT_TYPE: text/html; charset=UTF-8",
"HTTP_COOKIE: Akamai-EncDebug=YZAWlx49ShMvQf5gbQ4N3xWhdCLgWM9x+2Z7B9hXbSuWLq82tq6g/qKXYCv4nHQ83bMFeqxrS8xEmlTfwkYyFj3HRcsAO0q7tt+KHwrN9HbZvpyxa7TDY7nrAvVkwCZ2rhhapcdaI6jkcw4lfCw7GUfdJneseiy0dOAxp0TiyE24q5JtKd+zGMad9Scc2YXQbrK6eBWdMdI=",
"HTTP_HOST: www.abc.com",
"HTTP_REFERER:"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2004]: Your code ran successfully."
]
},
"allIncludedPages": [
{
"pageLink": "www.abc.com/content/test.html",
"enumeratedSource": [
"//1 <div class=\"test-class1\" id=\"test1\">",
"//2 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//3 <div>Included Page 1</div> "
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abctest1.com"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2011]: The document contains no ESI tags.",
"[2004]: Your code ran successfully."
]
},
{
"pageLink": "www.abc.com/content/abc/esi.html",
"enumeratedSource": [
"//1 <div class=\"test-class1\" id=\"test1\">",
"//2 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//3 <div>Included Page 2</div>"
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abctest2.com"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2011]: The document contains no ESI tags.",
"[2004]: Your code ran successfully."
]
}
]
}
Data
This section provides details for each type of data object the API exchanges. Most of these 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, all tables in this section list only data members that appear within these inner sub-objects.
Download the JSON schemas for this API.
Location
Encapsulates each edge server location within a top-level locations
array.
Download schema:
available.json
Sample GET response:
{
"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"
}
]
}
Location members
Member | Type | Description |
---|---|---|
Location : Encapsulates each edge server location within a top-level locations array. |
||
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.
Download schema:
digInfo.json
Sample GET response:
{
"digInfo": {
"hostname": "www.example.com.",
"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;; ",
"answerSection": [
{
"domain": "www.example.com.",
"ttl": 5,
"recordClass": "IN",
"recordType": "A",
"preferenceValues": null,
"value": "NN.NN.NN.NN"
}
],
"authoritySection": [
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "a.example.net."
},
{
"domain": "example.com.",
"ttl": 86399,
"recordClass": "IN",
"recordType": "NS",
"preferenceValues": null,
"value": "b.example.net."
}
]
}
}
Dig members
Member | Type | Description |
---|---|---|
Dig : Encapsulates a standard dig response within the top-level object’s digInfo member. |
||
answerSection |
Dns |
The answering servers, a list of DnsRecord objects. |
authoritySection |
Dns |
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, either A , AAAA , CNAME , MX , PTR , SOA , or NS . |
result |
String | Raw dig utility output. |
DnsRecord
Encapsulates a DNS record that appears within a Dig object’s answerSection
or authoritySection
.
Download schema:
dnsRecord.json
DnsRecord members
Member | Type | Description |
---|---|---|
DnsRecord : Encapsulates a DNS record that appears within a Dig object’s answerSection or authoritySection . |
||
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.
Download schema:
mtrData.json
Sample GET response:
{
"mtr": {
"source": "123.123.123.123",
"destination": "www.example.com",
"startTime": "2016-02-01T23:49:01Z",
"host": "aNNN-NNN-NNN-NN.deploy.example.net",
"packetLoss": 0.0,
"avgLatency": 0.3,
"analysis": "",
"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",
"hops": [
{
"number": 1,
"host": "NNNN:NNN:N:NNN::N",
"loss": 0.0,
"sent": 10,
"last": 0.2,
"avg": 0.3,
"best": 0.2,
"worst": 0.8,
"stDev": 0.0
},
{
"number": 2,
"host": "XXN-NNN.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.3,
"avg": 4.6,
"best": 0.3,
"worst": 33.9,
"stDev": 10.7
},
{
"number": 3,
"host": "XX-N-N-N.XXXNN.example.net",
"loss": 0.0,
"sent": 10,
"last": 0.6,
"avg": 0.4,
"best": 0.3,
"worst": 0.6,
"stDev": 0.0
}
]
}
}
Mtr members
Member | Type | Description | |
---|---|---|---|
Mtr : Encapsulates output of the mtr utility within a top-level mtr member. |
|||
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. |
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[] : A list of network hops. |
|||
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.
Download schema:
curlRequest.json
Sample GET response:
{
"url": "http://developer.test.com/index.html",
"userAgent": "Mozilla/5.0"
}
CurlRequest members
Member | Type | Description |
---|---|---|
CurlRequest : Represents a curl request body. |
||
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.
Download schema:
curlResults.json
Sample GET response:
{
"curlResults": {
"httpStatusCode": 403,
"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": {
"Server": "AkamaiGHost",
"Connection": "close",
"Expires": "Fri, 22 Jan 2016 02:01:42 GMT",
"Mime-Version": "1.0",
"Content-Length": "270",
"Date": "Fri, 22 Jan 2016 02:01:42 GMT",
"Content-Type": "text/html"
}
}
}
Curl members
Member | Type | Description | |
---|---|---|---|
Curl : Encapsulates curl results within a top-level curlResults member. |
|||
httpStatusCode |
Integer | The HTTP response code for the curl request. |
|
responseBody |
String | The entire response body of the curl request. |
|
responseHeaders |
Curl. |
Encapsulates the response’s headers. | |
Curl.responseHeaders : Encapsulates the response’s headers. |
|||
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[] object.
Download schema:
logLines.json
Sample GET response:
{
"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 |
---|---|---|
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[] object. |
||
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.
Download schema:
isCDNIP.json
Sample GET response:
{
"isCdnIp": false
}
IsCdnIp members
Member | Type | Description |
---|---|---|
IsCdnIp : Identifies IP addresses within the Akamai network. |
||
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.
Download schema:
geoLocation.json
Sample GET response:
{
"geoLocation": {
"clientIp": "NNN.NNN.NNN.NNN",
"countryCode": "US",
"regionCode": "NY",
"city": "NEWYORK",
"dma": 501,
"msa": 5602,
"pmsa": 5600,
"areaCode": "212, 213",
"latitude": 40.75,
"longitude": -73.9967,
"county": "NEWYORK",
"continent": "NA",
"fips": "36061",
"timeZone": "EST",
"network": null,
"networkType": null,
"zipCode": "10001-10014+10016-10041+10043-10045+10055+10060+10065",
"throughput": "vhigh",
"asNum": 1299,
"proxy": null
}
}
Geolocation members
Member | Type | Description |
---|---|---|
Geolocation : Encapsulates location data for an IP address within a top-level geoLocation member. |
||
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 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 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. |
DiagnosticLinkRequest
Encapsulates data necessary to generate a diagnosticUrl
. You can send this URL to end users that you want to gather diagnostic data for.
Download schema:
diagnosticLinkRequestBody.json
Sample POST:
{
"endUserName": "name",
"url": "www.test.com"
}
DiagnosticLinkRequest members
Member | Type | Description |
---|---|---|
DiagnosticLinkRequest : Encapsulates data necessary to generate a diagnosticUrl . You can send this URL to end users that you want to gather diagnostic data for. |
||
groupName |
String | A name you give to group end users of a particular hostname or URL and identify them in the list. |
url |
String | A hostname or URL you want to collect diagnostic data for. |
DiagnosticLinkResponse
Contains a diagnostic link you can send to end users of the group’s url
set.
Download schema:
diagnosticLink.json
Sample POST response:
{
"diagnosticLink": "http://www.t1info.net/5h23bc"
}
DiagnosticLinkResponse members
Member | Type | Description |
---|---|---|
DiagnosticLinkResponse : Contains a diagnostic link you can send to end users of the group’s url set. |
||
diagnosticLink |
String | The link that end users need to click so that the tool can gather their diagnostic data. |
DiagnosticGroups
Encapsulates groups created to gather diagnostic data and their details.
Download schema:
endUserDiagnosticData.json
Sample GET response:
{
"endUserDiagnosticLinks": [
{
"diagnosticLinkId": "342",
"groupName": "rl132",
"url": "https://www.example.com",
"createdDate": "2020-04-15T07:43:56Z",
"diagnosticLink": "www.testing.t1info.net/abc123",
"status": "active",
"recordCount": 0,
"diagLinkCode": "abc123",
"caseIds": [
"F-CS-0000000",
"F-CS-0000000"
]
},
{
"diagnosticLinkId": "341",
"groupName": "rl131",
"url": "https://www.example.com",
"createdDate": "2020-04-15T07:43:55Z",
"diagnosticLink": "www.testing.t1info.net/def123",
"status": "active",
"recordCount": 0,
"diagLinkCode": "def123",
"caseIds": [
"F-CS-0000000",
"F-CS-0000000"
]
}
]
}
DiagnosticGroups members
Member | Type | Description | |
---|---|---|---|
DiagnosticGroups : Encapsulates groups created to gather diagnostic data and their details. |
|||
end |
Diagnostic |
Encapsulates each diagnostic link test within a top-level endUserDiagnosticLinks array. |
|
DiagnosticGroups.endUserDiagnosticLinks[] : Encapsulates each diagnostic link test within a top-level endUserDiagnosticLinks array. |
|||
caseIds |
Array | The list of IDs of support cases attached to the diagnosticLink . |
|
createdDate |
String | An ISO 8601 timestamp for when the diagnosticLink was generated. |
|
diagLinkCode |
String | A unique identifier of the diagnosticLink . |
|
diagnosticLink |
String | A link generated to collect diagnostic data. See Create a group. | |
diagnosticLinkId |
String | A unique identifier for the group’s diagnostic link request. Use this ID value to Get group’s details. | |
groupName |
String | The name set for the group. See Create a group. | |
recordCount |
Integer | A number of diagnostic data collected with the diagnosticLink . |
|
status |
Enumeration | The status of the diagnosticLink , either active , exhausted for links that got 50 data submissions, or expired for links older than 7 days. |
|
url |
String | The URL the diagnosticLink link was generated for. See Create a group. |
GroupDiagnosticData
Encapsulates diagnostic data collected for a group and its details.
Download schema:
diagnosticLinkId.json
Sample GET response:
{
"groupName": "DuplicateGroupJCaGJ",
"createdDate": "2020-03-24T03:46:35Z",
"url": "https://www.adobe.com",
"diagnosticLink": "nully823b4",
"status": "expired",
"diagnosticRecords": [
{
"endUserDataId": "761",
"cipher": "tls1.3/TLS_AES_256_GCM_SHA384",
"cookie": true,
"protocol": "HTTP/2",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36",
"createdDate": "2020-03-24T11:42:35Z",
"uniqueId": 1,
"clientDnsIpv6": {
"id": "3625",
"ip": "00:00:0:0:0:0:000:abc/00",
"ipType": "DNSV6 IP",
"location": {
"city": "CHENNAI",
"state": "TN",
"country": "IN",
"asNum": "AS0000"
}
},
"clientIpv4": {
"id": "3630",
"ip": "00.00.00.00",
"ipType": "CLIENTV4 IP",
"associatedDnsIp": "3629",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS0000"
}
},
"clientIpv6": {
"id": "3631",
"ip": "00:00:00:00::ab",
"ipType": "CLIENTV6 IP",
"associatedDnsIp": "3629",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS9498"
}
},
"clientDnsIpv4": {
"id": "3620",
"ip": "00.00.000.00/00",
"ipType": "DNSV4 IP",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS0000"
}
},
"preferredClientIp": {
"id": "3624",
"ip": "00:00:00:00::ab",
"ipType": "PREFERRED CLIENT IP",
"associatedDnsIp": "3620",
"location": {
"city": "BANGALORE",
"state": "KA",
"country": "IN",
"asNum": "AS0000"
}
},
"edgeIps": [
{
"id": "3621",
"ip": "00.00.00.00",
"ipType": "EDGE IP",
"associatedDnsIp": "3620",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS000"
}
},
{
"id": "3622",
"ip": "00:00:00:00::0efd",
"ipType": "EDGE IP",
"associatedDnsIp": "3620",
"location": {
"city": "SINGAPORE",
"state": null,
"country": "SG",
"asNum": "AS000"
}
}
],
"mtrResults": [
{
"source": "00:00:00:00::00",
"destination": "00:00:00:00:00:000:00:00",
"startTime": "2020-04-21T09:25:11Z",
"host": "0-00-00-00.abc.abc",
"packetLoss": 100.0,
"avgLatency": 0.0,
"analysis": "Improperly configured Network or Firewall at Destination",
"mtrDataId": "1",
"edgeIds": [
"3626",
"3627"
],
"hops": [
{
"num": 1,
"host": "00.00.00.00",
"loss": 50.0,
"sent": 10,
"last": 2537.0,
"avg": 2287.0,
"best": 2047.0,
"worst": 2609.0,
"stDev": 264.1
},
{
"num": 2,
"host": "00.00.00.00",
"loss": 100.0,
"sent": 10,
"last": 0.0,
"avg": 0.0,
"best": 0.0,
"worst": 0.0,
"stDev": 0.0
}
]
}
]
}
]
}
GroupDiagnosticData members
Member | Type | Description | |
---|---|---|---|
GroupDiagnosticData : Encapsulates diagnostic data collected for a group and its details. |
|||
caseIds |
Array | The ID of the support case created for the group. | |
createdDate |
String | An ISO 8601 timestamp for when this group was created. | |
diagnosticLink |
String | The link generated to collect data from end users. | |
diagnostic |
Group |
Encapsulates diagnostics data collected from the group’s end users. | |
groupName |
String | The group name for which the tool collected data. See Create a group. | |
status |
Enumeration | The status the group’s diagnosticLink , either active , exhausted for links that got 50 data submissions, or expired for links older than 7 days. |
|
url |
String | The hostname or URL about which the tool collected data. See Create a group. | |
GroupDiagnosticData.diagnosticRecords[] : Encapsulates diagnostics data collected from the group’s end users. |
|||
cipher |
String | The cryptographic algorithm used between the client and www.t1info.net . |
|
clientDnsIpv4 |
Group |
Encapsulates details about the IP address of the DNS server which the client uses to connect to the edge IPv4 address. | |
clientDnsIpv6 |
Group |
Encapsulates details about the IP address of the DNS server which the client uses to connect to the edge IPv6 address. | |
clientIpv4 |
Group |
Encapsulates details about the client IPv4 address used to connect to the Akamai edge server. | |
clientIpv6 |
Group |
Encapsulates details about the client IPv6 address used to connect to the Akamai edge server. | |
cookie |
Boolean | Whether cookie values for the www.t1info.net website are stored on the client’s machine. |
|
createdDate |
String | An ISO 8601 timestamp for when the diagnostic data was collected. | |
edgeIps |
Group |
Encapsulates data about Akamai edge servers hosting the url . |
|
endUserDataId |
String | A unique identifier for the collected diagnostics data of the group. | |
mtrResults |
Group |
Encapsulates collected MTR data. | |
preferred |
Group |
Encapsulates details about IP address preferred by the end user to connect to the server. | |
protocol |
String | The HTTP protocol used to connect the client and www.t1info.net . |
|
uniqueId |
Number | A unique reference identifier which the end user can share with the technical support agent and the agent can use this UID to identify the user’s submitted data. | |
userAgent |
String | An application, operating system, vendor, and optionally the version of the requesting user agent. | |
GroupDiagnosticData.diagnosticRecords[].clientDnsIpv4 : Encapsulates details about the IP address of the DNS server which the client uses to connect to the edge IPv4 address. |
|||
ecs |
String | The client subnet information provided by the recursive DNS service. | |
id |
String | The unique identifier of the IPv4 DNS server. | |
ip |
String | The DNS IPv4 value. | |
ipType |
String | The type of ip . |
|
location |
Group |
Encapsulates data about location of the DNS IPv4 server. | |
GroupDiagnosticData.diagnosticRecords[].clientDnsIpv4.location : Encapsulates data about location of the DNS IPv4 server. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The city where the DNS server is located. | |
country |
String | The country to which the city belongs. | |
state |
String, Null | The state to which the city belongs. | |
GroupDiagnosticData.diagnosticRecords[].clientDnsIpv6 : Encapsulates details about the IP address of the DNS server which the client uses to connect to the edge IPv6 address. |
|||
ecs |
String | The client subnet information provided by the recursive DNS service. | |
id |
String | The unique identifier of the IPv6 DNS server. | |
ip |
String | The DNS IPv6 value. | |
location |
Group |
Encapsulates data about location of the DNS IPv6 server. | |
GroupDiagnosticData.diagnosticRecords[].clientDnsIpv6.location : Encapsulates data about location of the DNS IPv6 server. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The city where the DNS server is located. | |
country |
String | The country to which the state belongs. | |
state |
String, Null | The state to which the city belongs. | |
GroupDiagnosticData.diagnosticRecords[].clientIpv4 : Encapsulates details about the client IPv4 address used to connect to the Akamai edge server. |
|||
associatedDnsIp |
String | The DNS IP associated with the client IP. | |
id |
String | The unique identifier of client IP. | |
ip |
String | The client IPv4 value. | |
ipType |
String | The type of the ip . |
|
location |
Group |
Encapsulates data about location of the client IPv4 address. | |
GroupDiagnosticData.diagnosticRecords[].clientIpv4.location : Encapsulates data about location of the client IPv4 address. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The end user’s city. | |
country |
String | The country to which the city belongs. | |
state |
String, Null | The state to which the city belongs. | |
GroupDiagnosticData.diagnosticRecords[].clientIpv6 : Encapsulates details about the client IPv6 address used to connect to the Akamai edge server. |
|||
associatedDnsIp |
String | The DNS IP associated with the client IP. | |
id |
String | The unique identifier of the client IP. | |
ip |
String | The client IPv4 value. | |
ipType |
String | The type of the ip . |
|
location |
Group |
Encapsulates data about location of the client IPv6 address. | |
GroupDiagnosticData.diagnosticRecords[].clientIpv6.location : Encapsulates data about location of the client IPv6 address. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The end user’s city. | |
country |
String | The country to which the city belongs. | |
state |
String, Null | The state to which city belongs. | |
GroupDiagnosticData.diagnosticRecords[].edgeIps[] : Encapsulates data about Akamai edge servers hosting the url . |
|||
associatedDnsIp |
String | The DNS IP associated with the edge server. | |
id |
String | The unique identifier of the Akamai server. | |
ip |
String | The edge server IP. | |
ipType |
String | The type of the ip . |
|
location |
Group |
Encapsulates data about location of Akamai edge servers hosting the URL. | |
GroupDiagnosticData.diagnosticRecords[].edgeIps[].location : Encapsulates data about location of Akamai edge servers hosting the URL. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The closest city within a 50 mile radius that the IP address maps to. | |
country |
String | The country to which the city belongs. | |
state |
String, Null | The state to which the city belongs. | |
GroupDiagnosticData.diagnosticRecords[].mtrResults[] : Encapsulates collected MTR data. |
|||
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 the test request. Matches the destinationDomain request parameter. |
|
edgeIds |
Array | The list of edge IDs. | |
hops |
Group |
A list of network hops. | |
host |
String | The hostname within the Akamai network that corresponds to the source IP address. |
|
mtrDataId |
String | The sequence number of the MTR data. | |
packetLoss |
Number | Percentage of packets lost. | |
source |
String | The IP address that is the source of this test request. | |
startTime |
String | An ISO 8601 timestamp for when this test took place. | |
GroupDiagnosticData.diagnosticRecords[].mtrResults[].hops[] : A list of network hops. |
|||
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. | |
num |
Number | An index for each hop’s count within the full set. | |
sent |
Number | The number of tests for this hop. | |
stDev |
Number | The standard deviation, in milliseconds. | |
worst |
Number | Slowest time, in milliseconds. | |
GroupDiagnosticData.diagnosticRecords[].preferredClientIp : Encapsulates details about IP address preferred by the end user to connect to the server. |
|||
associatedDnsIp |
String | The DNS IP associated with the server. | |
id |
String | The unique identifier of the server of the preferred IP. | |
ip |
String | The IP address preferred by the end user. | |
ipType |
String | The type of the ip . |
|
location |
Group |
Encapsulates details about location of the server. | |
GroupDiagnosticData.diagnosticRecords[].preferredClientIp.location : Encapsulates details about location of the server. |
|||
asNum |
String | The Internet number allocated by the IANA to the Regional Internet Registries. | |
city |
String | The city where the end user’s server is located. | |
country |
String | The country to which the state belongs. | |
state |
String, Null | The state to which the city belongs. |
GtmProperty
Encapsulates each Global Traffic Management property within a top-level gtmProperties
array.
Download schema:
gtmProperties.json
Sample GET response:
{
"gtmProperties": [
{
"property": "origin",
"domain": "akadns.net",
"hostName": "origin.akadns.net"
},
{
"property": "origin-r3h",
"domain": "akadns.net",
"hostName": "origin-r3h.akadns.net"
}
]
}
GtmProperty members
Member | Type | Description |
---|---|---|
GtmProperty : Encapsulates each Global Traffic Management property within a top-level gtmProperties array. |
||
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.
Download schema:
gtmPropertyIps.json
Sample GET response:
{
"gtmPropertyIps": {
"property": "origin",
"domain": "akadns.net",
"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"
],
"targetIps": [
"204.8.50.81"
]
}
}
GtmPropertyIps members
Member | Type | Description |
---|---|---|
GtmPropertyIps : Encapsulates a Global Traffic Management property’s IP addresses within a top-level gtmPropertyIps member. |
||
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.
Download schema:
estatsPostRequest.json
Sample GET response:
{
"url": "http://www.test.com"
}
EstatsRequest members
Member | Type | Description |
---|---|---|
EstatsRequest : Contains the URL needed to POST an asynchronous estats request. |
||
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.
Download schema:
estats.json
Sample GET response:
{
"eStats": {
"cpCode": 11111,
"edgeErrors": 188,
"edgeHits": 3534,
"edgeFailurePercentage": 5.0,
"originErrors": 152,
"originHits": 765,
"originFailurePercentage": 20.0,
"topEdgeIpsWithSuccessFromOrigin": [],
"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
}
],
"topEdgeIpsWithError": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 7,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 16031,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 5,
"httpStatus": 400,
"objectStatus": "pxR",
"region": 20321,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=pxR&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithErrorFromOrigin": [
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 15,
"httpStatus": 401,
"objectStatus": "aoxPRW",
"region": 23308,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxPRW&httpStatusCode=401&endTime=1444408174"
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"hits": 12,
"httpStatus": 400,
"objectStatus": "aoxCPRW",
"region": 20449,
"edgeLogsLink": "/diagnostic-tools/v2/ip-addresses/NN.NN.NN.NN/log-lines?cpCode=1111&objStatus=aoxCPRW&httpStatusCode=400&endTime=1444408174"
}
],
"topEdgeIpsWithSuccess": [
{
"edgeI": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 13,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 21524
},
{
"edgeIp": "NN.NN.NN.NN",
"errorCode": "0:None",
"ghostLog": null,
"hits": 9,
"httpStatus": 302,
"objectStatus": "pxR",
"region": 24168
}
]
}
}
Estats members
Member | Type | Description |
---|---|---|
Estats : Encapsulates error statistics within a top-level eStats member. Errors statistics report on traffic from edge servers to both clients and the origin. |
||
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. |
edge |
Integer | The percentage of error responses for traffic between edge and client. |
edgeHits |
Integer | Total number of hits from clients to edge. |
edge |
Status |
Percentages and total hits for each status code for traffic between edge and client. |
originErrors |
Integer | The total number of reported errors for traffic between edge and origin. |
origin |
Integer | The percentage of error responses for traffic between edge and origin. |
originHits |
Integer | Total number of hits from the edge to origin. |
origin |
Status |
Percentages and total hits for each status code for traffic between edge and origin. |
top |
Edge |
The set of top IPs with errors from edge to client. |
top |
Edge |
The set of top IPs with errors from edge to origin. |
top |
Edge |
The set of top IPs with successful responses from edge to client. |
top |
Edge |
The set of top IPs with successful responses from origin to edge. |
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.
Download schema:
statusCodeDistribution.json
StatusCodeDistribution members
Member | Type | Description |
---|---|---|
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. |
||
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.
Download schema:
edgeIpInfo.json
EdgeIp members
Member | Type | Description |
---|---|---|
EdgeIp : Encapsulates error statistics for a single IP address. See the larger Estats object in which it appears. |
||
edgeIp |
String | The edge IP address. |
edgeLogsLink |
String | A link you can use to 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.
Download schema:
translatedError.json
Sample GET response:
{
"translatedError": {
"url": "http://etranslator.edgesuite.net/ERR_READ_TIMEOUT",
"httpResponseCode": 504,
"timestamp": "Thu, Dec 17, 2015 20:13 GMT",
"epochTime": 1450383180,
"clientIp": "^ (Client IP - NA)",
"connectingIp": "23.79.236.14 (CAMBRIDGE,MA,US)",
"serverIp": "80.67.64.110 (CAMBRIDGE,MA,US)",
"originHostname": "akamai1b.download.akamai.com",
"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",
"requestMethod": "GET",
"reasonForFailure": "The forward connection to the origin server from the edge server timed out.",
"wafDetails": "-",
"logs": [
{
"description": "Edge Server: 80.67.64.110 going forward to 23.15.201.13",
"fields": {
"Ghost IP": "80.67.64.110",
"Forward Request": "f",
"timestamp": "1450383215.030",
"content bytes received": "0",
"total estimated bytes received": "0",
"Forward IP": "23.15.201.13",
"client IP (p-prefresh)": "23.79.236.14",
"HTTP method (GET HEAD etc)": "GET",
"ARL": "/D/1682/3101/000/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "0",
"content-type": "-",
"IMS (i-ims)": "-",
"SSL": "TLSv1",
"Request Number": "0",
"Edgescape": "-",
"Forward Hostname": "akamai1b.download.akamai.com",
"Ghost request header size": "692",
"Ghost request size": "692",
"SSL overhead bytes": "4181",
"Forward ARL (if rewritten in metadata)": "/D/1682/3101/000/akamai1b.download.akamai.com/3101/crackme",
"Request id": "1d5865b",
"received_b": "ERR_READ_TIMEOUT|before_resp_hdrs",
"object-max-age_s": "0",
"Sureroute2info": "-",
"range": "-",
"SureRouteRaceStat-indirRoute": "-",
"SureRouteRace-stat-dirRoute": "-",
"Forward-side-http-overhead": "696",
"Reason for Throttling": "0",
"Time spent deferring forward read": "0",
"Object Status 2": "-",
"Multi-Feature Status Field": "-",
"Multi-Purpose Key/Value Field": "mtse=g|0;aid=87676;pfs=c;hnd=1|n",
"Real IP of Forward Ghost (ESSL)": "-"
}
},
{
"description": "Edge Server: 80.67.64.110 response to 23.79.236.14",
"fields": {
"Ghost IP": "80.67.64.110",
"Client Request": "r",
"timestamp": "1450383215.018",
"object size": "250",
"content bytes served": "250",
"total estimated bytes served": "568",
"client IP": "23.79.236.14",
"HTTP method": "GET",
"ARL": "/^/1682/3101/^/akamai1b.download.akamai.com/ERR_READ_TIMEOUT",
"HTTP status code": "504",
"error": "ERR_READ_TIMEOUT",
"content-type": "text/html",
"host header": "etranslator.edgesuite.net",
"cookie": "^",
"referrer": "^",
"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",
"IMS": "-",
"SSL": "U",
"persistent request number": "1",
"Client request header size": "454",
"Accept-Language": "^",
"SSL overhead bytes": "4538",
"Serial number and map": "1682.^",
"Request byte-range": "-",
"Uncompressed length": "-",
"Other-Error-Indication": "^",
"dca-data": "-",
"X-Forwarded-For": "-",
"X-Akamai-Edge-Log": "-",
"object-max-age_s": "-",
"custom-field": "^",
"object-status-2": "oW",
"ssl-byte": "^",
"c-http-overhead": "^",
"Client-rate-limiting": "^",
"Client-request-body-size": "-",
"flv seek processing info": "^",
"True client ip": "^",
"Web Application Firewall Information": "-",
"Edge Tokenization Information": "-",
"Origin File Size": "^",
"HTTP Streaming info": "-",
"Reason for not caching (priv/released)": "^",
"Rate Accounting info": "^"
}
}
]
}
}
TranslatedError members
Member | Type | Description | |
---|---|---|---|
TranslatedError : Encapsulates an error translation within a top-level translatedError member. |
|||
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 |
Translated |
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[] : A series of loglines for this error request. Note that this data is arranged differently than in the LogLines object. |
|||
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.
Download schema:
urlDebugPostBody.json
Sample GET response:
{
"url": "http://www.test.com",
"edgeIp": "123.123.123.123",
"headers": [
"Location:http//test.com",
"Content-Type:application/json"
]
}
UrlDebugRequest members
Member | Type | Description |
---|---|---|
UrlDebugRequest : Represents a URL Debugger request body. |
||
edgeIp |
String | The IP address of the edge server assigned to 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.
Download schema:
urlDebug.json
Sample GET response:
{
"urlDebug": {
"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 "
],
"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"
],
"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": " - "
}
]
}
}
UrlDebug members
Member | Type | Description | |
---|---|---|---|
UrlDebug : Encapsulates various HTTP and DNS information for a URL in a top-level urlDebug member. |
|||
dnsInformation |
Array | A series of DNS resolutions represented as lines of dig output. |
|
httpResponse |
Url |
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 |
Url |
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[] : 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. |
|||
name |
String | The HTTP response key. | |
value |
String | The HTTP response value. | |
UrlDebug.logs[] : A list of log lines for this error request. Logs follow the same tab-delimited format as in the LogLines object. |
|||
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).
Download schema:
translatedUrl.json
Sample GET response:
{
"translatedUrl": {
"typeCode": "Object changes when ARL changes",
"originServer": "origin.example.com",
"cpCode": 12345,
"serialNumber": 54321,
"ttl": "Infinite"
}
}
TranslatedUrl members
Member | Type | Description |
---|---|---|
TranslatedUrl : Encapsulates basic metadata about an Akamaized URL (ARL). |
||
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.
Download schema:
pollingResponse.json
Sample GET response:
{
"requestId": "88972782",
"link": "/is-cdn-ip-requests/1.1.1.1",
"retryAfter": 3
}
PollResponse members
Member | Type | Description |
---|---|---|
PollResponse : Checks the status of asynchronous requests. For details, see Asynchronous requests. |
||
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. |
ESIQuery
Contains the POST body parameters of the request for which you request ESI debugging information.
Download schema:
inputBody.json
Sample POST request:
{
"url": "https://www.abc.com",
"clientIP": "192.168.76.67",
"originServer": "test.server",
"clientRequestHeaders": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8;"
}
}
ESIQuery members
Member | Type | Description |
---|---|---|
ESIQuery : Contains the POST body parameters of the request for which you request ESI debugging information. |
||
clientIP |
String | The client IP that emulates a location for specific EdgeScape GEO (geographic) data. |
client |
Object | Custom HTTP headers used in the client’s requests. |
originServer |
String | The test origin server where the edge server sends requests instead of the origin server. |
url |
String | The URL of the page with the ESI tags for which you request debugging information. |
ESIReport
Contains ESI debugging information for the source page and the included pages.
Download schema:
esiDebugReport.json
Sample POST response:
{
"sourceDebugPage": {
"pageLink": "http://www.abc.com/",
"enumeratedSource": [
"//1 ",
"//2 <!DOCTYPE html><html class=\"no-js\">",
"//3 <head>",
"//4 <meta charset=\"utf-8\">",
"//5 <esi:choose>",
"//6 <esi:when test=\"$len($(HTTP_HOST{0}))>1\">",
"//21 <esi:assign name=\"currenthost\" value=\"$(HTTP_HOST{0})\"/>",
"//22 </esi:when>",
"//23 <esi:otherwise>",
"//24 <esi:assign name=\"currenthost\" value=\"$(HTTP_HOST)\"/>",
"//25 </esi:otherwise>",
"//26 </esi:choose>",
"//27 <esi:choose>",
"//28 <esi:when test=\"$substr( $(currenthost), 0, $index($(currenthost), '.')) == inactive\">",
"//29 <esi:assign name=\"versionPath\" value=\"inactiveversion\"/>",
"//30 </esi:when>",
"//31 <esi:when test=\"$substr( $(currenthost), 0, $index($(currenthost), '.')) == deploy\">",
"//32 <esi:assign name=\"versionPath\" value=\"inactiveversion\"/>",
"//33 </esi:when>",
"//34 <esi:otherwise>",
"//35 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//36 </esi:otherwise>",
"//37 </esi:choose>",
"//38 <!-- ESI cdn script include for www -->",
"//39 <script type=\"text/javascript\" src='<esi:include src=\"http://www.abcinclude.com\"></esi:include>/clientlibs/abc.min.js'></script>"
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abc.com",
"HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8;",
"HTTP_CONTENT_LENGTH: 14041",
"HTTP_CONTENT_LOCATION:",
"HTTP_CONTENT_TYPE: text/html; charset=UTF-8",
"HTTP_COOKIE: Akamai-EncDebug=YZAWlx49ShMvQf5gbQ4N3xWhdCLgWM9x+2Z7B9hXbSuWLq82tq6g/qKXYCv4nHQ83bMFeqxrS8xEmlTfwkYyFj3HRcsAO0q7tt+KHwrN9HbZvpyxa7TDY7nrAvVkwCZ2rhhapcdaI6jkcw4lfCw7GUfdJneseiy0dOAxp0TiyE24q5JtKd+zGMad9Scc2YXQbrK6eBWdMdI=",
"HTTP_HOST: www.abc.com",
"HTTP_REFERER:"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2004]: Your code ran successfully."
]
},
"allIncludedPages": [
{
"pageLink": "www.abc.com/content/test.html",
"enumeratedSource": [
"//1 <div class=\"test-class1\" id=\"test1\">",
"//2 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//3 <div>Included Page 1</div> "
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abctest1.com"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2011]: The document contains no ESI tags.",
"[2004]: Your code ran successfully."
]
},
{
"pageLink": "www.abc.com/content/abc/esi.html",
"enumeratedSource": [
"//1 <div class=\"test-class1\" id=\"test1\">",
"//2 <esi:assign name=\"versionPath\" value=\"version\"/>",
"//3 <div>Included Page 2</div>"
],
"environmentVariables": [
"versionPath: version",
"currenthost: www.abctest2.com"
],
"syntaxErrorMessages": [],
"evaluatedResults": [
"[2011]: The document contains no ESI tags.",
"[2004]: Your code ran successfully."
]
}
]
}
ESIReport members
Member | Type | Description |
---|---|---|
ESIReport : Contains ESI debugging information for the source page and the included pages. |
||
allIncludedPages |
ESIPage array | ESI debugging information for all the pages that are included in the source page’s ESI code. |
sourceDebugPage |
ESIPage | ESI debugging information for the source page. |
ESIPage
Contains ESI debugging information for a single page.
Download schema:
esiDebugPage.json
ESIPage members
Member | Type | Description |
---|---|---|
ESIPage : Contains ESI debugging information for a single page. |
||
enumeratedSource |
Array | The ESI source code lines with line numbers prefixed to each line. |
environment |
Array | The resulting values for the ESI-supported and user-defined variables. |
evaluatedResults |
Array | The results of evaluating the ESI source code. |
pageLink |
String | The URL of the page. |
syntax |
Array | Information about any syntax error messages. |
Error codes
Various error statistics and log lines may specify these
errorCode
values generated by edge servers:
Error Code | Reason / Recommendation |
---|---|
ERR_ACCESS_DENIED|* |
A string after the bar character that is not listed here 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 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 simply goes 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 are 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 |
The headers returned from the origin server to the edge server were malformed or too large. The error occurs 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
These error codes may appear within UrlDebug.httpResponse[] 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 with 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 with 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.
This table 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 the edge server 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 . |
Errors
This section provides details on the data object that reflects the API’s common response to error cases, and lists the API’s range of response status codes for both error and success cases.
Error responses
In case of error, this API responds with JSON objects that follow the HTTP Problem Details standard. This example shows a typical error response object:
{
"type": "https://problems.luna.akamaiapis.net/diagnostic-tools/bad-request",
"title": "Bad Request",
"status": 400,
"detail": "Invalid Argument",
"instance": "/diagnostic-tools/v2/ip-addresses/61.213.151.92/log-lines?startTime=2016-02-10T00:00:00Z&noOfMins=10&noOfLogLines=10000",
"method": "GET",
"requestTime": "2016-02-10T22:18:20.505Z",
"errors": [
{
"error": "Invalid noOfLogLines query param. Limit is 5000",
"fieldName": "noOfLogLines"
}
]
}
HTTP status codes
This section lists the full range of response codes the API may produce.
Code | Description |
---|---|
200 | The operation was successful. This also results from polling an ongoing process. |
202 | Resource successfully accepted. This signals the start of an asynchronous process. |
303 | The requested item is available at the link provided, once the asynchronous process completes. |
400 | Bad Request. |
403 | Access is forbidden. This error typically occurs for tools that depend on certain features being available under your product and contract. |
404 | Resource not found. |
429 | Too many requests. This API operation is rate-limited. |
500 | Internal server error. |
502 | Platform timeout error. |
503 | Service is temporarily unavailable. |