The following shows how to generate the bytes-by-httpversion
report using either the Reporting API's Generate a report POST operation or the Get a cacheable report GET operation. Details about each report's supported products, metrics, filters, and available data intervals are also available dynamically by running the API's Get a report type operation, also shown below. See also other available reports.
Report definition
Edge bytes returned by HTTP version.
Business object: cpcode
Data available for: 92 days
Available metrics
Metric | Description |
---|---|
Data metrics | |
edgeBytes | The volume for the traffic delivered from Akamai to the end user. |
edgeBytesPercent | Edge bytes percent by HTTP method. |
Available filters
Filter | Type | Description |
---|---|---|
Optional filters | ||
ca | Enumeration | Indicates whether content is storable. |
non_cacheable : Can't be stored (identified as 'no-store' or has a 0 TTL) and will always trigger an origin request. | ||
cacheable : Can be stored after an initial request for faster future delivery. | ||
delivery_type | Enumeration | Distinguishes secure from non-secure traffic. |
secure : Secure traffic. | ||
non_secure : Non-secure traffic. | ||
http_version | Enumeration | HTTP version. |
https1.1 : https1.1 | ||
http2 : http2 | ||
http3 : http3 | ||
http1.1 : http1.1 | ||
ip_version | Enumeration | The IP for which the report is shown. |
ipv4 : IP address in v4 format. | ||
ipv6 : IP address in v6 format. | ||
traffic | Enumeration | HTTP traffic to be included in the report data. |
get_head_responses : Response header traffic from GET operations. | ||
put_post_requests : Request traffic from PUT and POST operations. | ||
all_responses : All response traffic. | ||
put_post_responses : Response traffic from PUT and POST operations. |
POST request
POST /reporting-api/v1/reports/bytes-by-httpversion/versions/1/report-data{?start,end}
Sample: /reporting-api/v1/reports/bytes-by-httpversion/versions/1/report-data?start=2022-04-03T12%3A10%3A00Z&end=2022-04-05T12%3A15%3A00Z&interval=FIVE_MINUTES
Query parameters
Parameter | Type | Sample | Description |
---|---|---|---|
Required | |||
start | String | 2022-05-01T00:00:00Z | Specifies the start of the reported period as an ISO-8601 timestamp with optional time zone. The report includes data that matches the start value's timestamp. |
end | String | 2022-06-01T00:00:00Z | Specifies the end of the reported period as an ISO-8601 timestamp with optional time zone. The report excludes any data that matches the end value's timestamp. |
JSON request members
Member | Type | Description |
---|---|---|
objectIds | Array | Specifies the set of cpcode values you want to report on. |
objectIds | Enumeration | As an alternative to an array of ID values, specify all as a string for unfiltered data. Either way, objectIds is required. |
metrics | Array | The set of desired metrics. If omitted, the report includes all available metrics. |
filters | Map of Arrays | Specifies a set of custom filters, with each filter's name keying an array with each filter's set of values. |
Request body:
{
"objectIds": [
"55232",
"23433",
"32433"
],
"metrics": [
"edgeBytes",
"edgeBytesPercent"
],
"filters": {
"ca": [
"cacheable",
"non_cacheable"
],
"delivery_type": [
"secure",
"non-secure"
],
"http_version": [
"https1.1",
"http2"
],
"ip_version": [
"ipv4",
"ipv6"
],
"traffic": [
"put_post_responses",
"get_head_responses"
]
}
}
GET request
GET /reporting-api/v1/reports/bytes-by-httpversion/versions/1/report-data{?start,end,objectIds,allObjectIds,metrics,filters}
Sample: /reporting-api/v1/reports/bytes-by-httpversion/versions/1/report-data?start=2022-05-01T00%3A00%3A00Z&end=2022-06-01T00%3A00%3A00Z&objectIds=55232,23433,32433&metrics=edgeBytes%2CedgeBytesPercent&filters=ca%3Dcacheable%2Cca%3Dnon_cacheable%2Cdelivery_type%3Dsecure%2Cdelivery_type%3Dnon-secure
Query parameters
Parameter | Type | Sample | Description |
---|---|---|---|
Required | |||
start | String | 2022-06-23T13:55:00Z | Specifies the start of the reported period as an ISO-8601 timestamp with optional time zone. The report includes data that matches the start value’s timestamp. |
end | String | 2022-06-23T14:15:00Z | Specifies the end of the reported period as an ISO-8601 timestamp with optional time zone. The report excludes any data that matches the end value’s timestamp. |
Optional | |||
allObjectIds | Boolean | true | As an alternative to objectIds , enabling this generates a report that includes all IDs available for the cpcode objectType. This parameter is ignored if the request also specifies a set of objectIds. |
objectIds | String | 55232,23433,32433 | As an alternative to allObjectIds , specifies the set of unique IDs for the cpcode objectType you want to report on, formatted as a comma-delimited list. |
metrics | String | edgeBytes | Specifies a comma-separated list of metrics to include in the report, otherwise all metrics if omitted. The set of available metrics depends on the type of report. URL-encode the entire value in the GET request. |
filters | String | ca=cacheable, | Specifies criteria to filter the report’s data. The set of available filters depends on the type of report. Separate each filter name and value with an equals (= ) character, and separate various name/value pairs with commas (, ). To specify more than one filter value, repeat the filter name. See the accompanying example for guidance. URL-encode the entire value in the GET request. |
JSON response
Status 200 application/json
Response body:
{
"metadata": {
"name": "bytes-by-httpversion",
"version": "1",
"outputType": "FLAT",
"groupBy": [
"http_version"
],
"start": "2022-05-01T00:00:00Z",
"end": "2022-06-01T00:00:00Z",
"availableDataEnds": null,
"suggestedRetryTime": null,
"rowCount": 4,
"filters": [
{
"name": "ca",
"values": [
"cacheable",
"non_cacheable"
]
},
{
"name": "delivery_type",
"values": [
"secure",
"non-secure"
]
},
{
"name": "http_version",
"values": [
"https1.1",
"http2"
]
},
{
"name": "ip_version",
"values": [
"ipv4",
"ipv6"
]
},
{
"name": "traffic",
"values": [
"put_post_requests",
"put_post_responses"
]
}
],
"columns": [
{
"name": "groupBy",
"label": "http_version"
},
{
"name": "edgeBytes",
"label": "Edge Bytes"
},
{
"name": "edgeBytesPercent",
"label": "Edge Bytes %"
}
],
"objectType": "cpcode",
"objectIds": [
"55232",
"23433",
"32433"
]
},
"data": [
{
"http_version": "https1.1",
"edgeBytes": "1010",
"edgeBytesPercent": "36"
},
{
"http_version": "http2",
"edgeBytes": "1734",
"edgeBytesPercent": "78"
},
{
"http_version": "http3",
"edgeBytes": "1211",
"edgeBytesPercent": "37"
},
{
"http_version": "http1.1",
"edgeBytes": "1483",
"edgeBytesPercent": "53"
}
],
"summaryStatistics": {}
}
CSV response
Status 200 text/csv
Response Body:
#METADATA_START
name,bytes-by-httpversion
version,1
source,bytes-by-httpversion/versions/1
groupBy,http_version
start,2022-05-01T00:00:00Z
end,2022-06-01T00:00:00Z
availableDataEnds,
suggestedRetryTime,
rowCount,4
objectType,cpcode
objectIds,55232,23433,32433
ca,cacheable,non_cacheable
delivery_type,secure,non-secure
http_version,https1.1,http2
ip_version,ipv4,ipv6
traffic,put_post_requests,put_post_responses
#METADATA_END
#SUMMARYSTATISTICS_START
#SUMMARYSTATISTICS_END
#COLUMNS_START
http_version,edgeBytes,edgeBytesPercent
#COLUMNS_END
#DATA_START
https1.1,1010,36
http2,1734,78
http3,1211,37
http1.1,1483,53
#DATA_END
Get report details
This sample Get a report type operation gets the same information you need to run the bytes-by-httpversion
report as provided in this reference documentation, but available dynamically to your API client application.
GET /reporting-api/v1/reports/bytes-by-httpversion/versions/1
Status 200 application/json
Response body:
{
"name": "bytes-by-httpversion",
"description": "Edge Bytes returned by HTTP version",
"businessObjectName": "cpcode",
"version": 1,
"status": "PUBLISHED",
"deprecated": false,
"timeBased": false,
"supportsPagination": false,
"outputType": "FLAT",
"requiredProducts": [
"Basic Traffic Reports"
],
"requiredRoles": [
"Reports - All privileges",
"Reports - View only",
"OTA App User"
],
"available": true,
"metrics": [
{
"name": "edgeBytes",
"description": "The volume for the traffic delivered from Akamai to the end user.",
"label": "Edge Bytes",
"unit": "BYTE",
"summaryStatistic": false
},
{
"name": "edgeBytesPercent",
"description": "Edge bytes percent by HTTP method",
"label": "Edge Bytes %",
"unit": "RATIO",
"summaryStatistic": false
}
],
"groupOutlyingValues": {
"enabled": false
},
"groupBy": [
"http_version"
],
"filters": [
{
"name": "ip_version",
"type": "enum",
"description": "The IP for which the report is shown.",
"values": [
{
"value": "ipv4",
"description": "IP address in v4 format."
},
{
"value": "ipv6",
"description": "IP address in v6 format."
}
],
"required": false
},
{
"name": "traffic",
"type": "enum",
"description": "HTTP traffic to be included in the report data.",
"values": [
{
"value": "get_head_responses",
"description": "Response header traffic from GET operations."
},
{
"value": "put_post_requests",
"description": "Request traffic from PUT and POST operations."
},
{
"value": "all_responses",
"description": "All response traffic."
},
{
"value": "put_post_responses",
"description": "Response traffic from PUT and POST operations."
}
],
"required": false
},
{
"name": "http_version",
"type": "enum",
"description": "HTTP version.",
"values": [
{
"value": "https1.1",
"description": "https1.1"
},
{
"value": "http2",
"description": "http2"
},
{
"value": "http3",
"description": "http3"
},
{
"value": "http1.1",
"description": "http1.1"
}
],
"required": false
},
{
"name": "delivery_type",
"type": "enum",
"description": "Distinguishes secure from non-secure traffic.",
"values": [
{
"value": "secure",
"description": "Secure traffic."
},
{
"value": "non_secure",
"description": "Non-secure traffic."
}
],
"required": false
},
{
"name": "ca",
"type": "enum",
"description": "Indicates whether content is storable.",
"values": [
{
"value": "non_cacheable",
"description": "Can't be stored (identified as 'no-store' or has a 0 TTL) and will always trigger an origin request."
},
{
"value": "cacheable",
"description": "Can be stored after an initial request for faster future delivery."
}
],
"required": false
}
],
"intervals": [
"MONTH",
"WEEK",
"DAY",
"HOUR",
"FIVE_MINUTES"
],
"dataRetentionDays": 92,
"links": [
{
"rel": "self",
"href": "/reporting-api/v1/reports/bytes-by-httpversion/versions/1"
},
{
"rel": "versions",
"href": "/reporting-api/v1/reports/bytes-by-httpversion/versions"
},
{
"rel": "all-reports",
"href": "/reporting-api/v1/reports"
},
{
"rel": "execute-report",
"href": "/reporting-api/v1/reports/bytes-by-httpversion/versions/1/report-data"
}
]
}