apirequests-by-endpoint report
The following shows how to generate the
apirequests-by-endpoint
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
Provides the number of requests by endpoint.
Business object: account_id
Data available for: 92 days
Required products: EDGECONTROL
Available metrics
Metric | Description | |
---|---|---|
Data metrics | ||
requestsPercent |
The total bandwidth used for requests. | |
requestsTotal |
Total requests for a given time frame. |
Available filters
Filter | Type | Description |
---|---|---|
Optional filters | ||
contract_type |
String | The list of accounts and contract type IDs a given user has access to. |
endpoint |
String | An API configuration registered with Akamai. |
response_class |
Enumeration | A class of HTTP response status codes, from 0xx through 6xx. |
response_code |
String | An HTTP response status code, for example, 201. |
response_status |
Enumeration | An indicator of whether the HTTP response resulted in success or an error. |
username |
String | Name of client generating API request. |
Sample report
POST /reporting-api/v1/reports/apirequests-by-endpoint/versions/1/report-data{?start,end}
Sample: /reporting-api/v1/reports/apirequests-by-endpoint/versions/1/report-data?start=2020-10-01T00%3A00%3A00Z&end=2020-11-01T00%3A00%3A00Z
Object type: Query
Download schema: report-request-schema.json
Query parameters
Parameter | Type | Sample | Description |
---|---|---|---|
Required | |||
start |
String | 2020-10-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 | 2020-11-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 account_id 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": [
"account1",
"account2",
"account3"
],
"metrics": [
"requestsPercent",
"requestsTotal"
],
"filters": {
"contract_type": [
"1-3CV382",
"1-6T5ZND"
],
"endpoint": [
"endpoint/1",
"endpoint/2"
],
"response_class": [
"0xx",
"4xx"
],
"response_code": [
"403",
"201"
],
"response_status": [
"success",
"error"
],
"username": [
"username1",
"username2"
]
}
}
GET /reporting-api/v1/reports/apirequests-by-endpoint/versions/1/report-data{?start,end,objectIds,allObjectIds,metrics,filters}
Sample: /reporting-api/v1/reports/apirequests-by-endpoint/versions/1/report-data?start=2020-10-01T00%3A00%3A00Z&end=2020-11-01T00%3A00%3A00Z&objectIds=account1,account2,account3&metrics=requestsPercent%2CrequestsTotal&filters=contract_type%3D1-3CV382%2Ccontract_type%3D1-6T5ZND%2Cendpoint%3Dendpoint%2F1%2Cendpoint%3Dendpoint%2F2
Query parameters
Parameter | Type | Sample | Description |
---|---|---|---|
Required | |||
start |
String | 2020-10-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. |
end |
String | 2020-11-01T00:00:00Z |
Specifies if unavailable reports should be shown. |
Optional | |||
allObjectIds |
Boolean | true |
As an alternative to objectIds , enabling this generates a report that includes all IDs available for the account_id objectType. This parameter is ignored if the request also specifies a set of objectIds. |
objectIds |
String | account1,account2, |
As an alternative to allObjectIds , specifies the set of unique IDs for the account_id objectType you want to report on, formatted as a comma-delimited list. |
metrics |
String | requestsPercent, |
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 | contract_type= |
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. |
Status 200
application/json
Object type: Report
Download schema: report-response-schema.json
Response body:
{
"metadata": {
"name": "apirequests-by-endpoint",
"version": "1",
"outputType": "FLAT",
"groupBy": [
"endpoint"
],
"start": "2020-10-01T00:00:00Z",
"end": "2020-11-01T00:00:00Z",
"availableDataEnds": null,
"suggestedRetryTime": null,
"rowCount": 4,
"filters": [
{
"name": "contract_type",
"values": [
"1-3CV382",
"1-6T5ZND"
]
},
{
"name": "endpoint",
"values": [
"endpoint/1",
"endpoint/2"
]
},
{
"name": "response_class",
"values": [
"4xx",
"5xx"
]
},
{
"name": "response_code",
"values": [
"200",
"500"
]
},
{
"name": "response_status",
"values": [
"success",
"error"
]
},
{
"name": "username",
"values": [
"username1",
"username2"
]
}
],
"columns": [
{
"name": "groupBy",
"label": "endpoint"
},
{
"name": "requestsPercent",
"label": "Requests %"
},
{
"name": "requestsTotal",
"label": "Total Requests"
}
],
"objectType": "account_id",
"objectIds": [
"account1",
"account2",
"account3"
]
},
"data": [
{
"endpoint": "endpoint/6",
"requestsPercent": "67",
"requestsTotal": "3933"
},
{
"endpoint": "endpoint/5",
"requestsPercent": "3",
"requestsTotal": "16"
},
{
"endpoint": "endpoint/2",
"requestsPercent": "60",
"requestsTotal": "4513"
},
{
"endpoint": "endpoint/4",
"requestsPercent": "2",
"requestsTotal": "2236"
}
],
"summaryStatistics": {}
}
Status 200
text/csv
Response Body:
#METADATA_START
name,apirequests-by-endpoint
version,1
source,apirequests-by-endpoint/versions/1
groupBy,endpoint
start,2020-10-01T00:00:00Z
end,2020-11-01T00:00:00Z
availableDataEnds,
suggestedRetryTime,
rowCount,4
objectType,account_id
objectIds,account1,account2,account3
contract_type,1-3CV382,1-6T5ZND
endpoint,endpoint/1,endpoint/2
response_class,4xx,5xx
response_code,200,500
response_status,success,error
username,username1,username2
#METADATA_END
#SUMMARYSTATISTICS_START
#SUMMARYSTATISTICS_END
#COLUMNS_START
endpoint,requestsPercent,requestsTotal
#COLUMNS_END
#DATA_START
endpoint/6,67,3933
endpoint/5,3,16
endpoint/2,60,4513
endpoint/4,2,2236
#DATA_END
Get report details
This sample
Get a report type
operation gets the same information you need to run the
apirequests-by-endpoint
report as provided in this reference documentation,
but available dynamically to your API client application.
GET /reporting-api/v1/reports/apirequests-by-endpoint/versions/1
Status 200
application/json
Object type: ReportType
Download schema: data-row-schema.json
Response body:
{
"name": "apirequests-by-endpoint",
"businessObjectName": "account_id",
"version": 1,
"status": "PUBLISHED",
"deprecated": false,
"timeBased": false,
"supportsPagination": false,
"outputType": "FLAT",
"requiredProducts": [
"EDGECONTROL"
],
"requiredRoles": [
"IDM: API Clients - Admin Access"
],
"available": true,
"metrics": [
{
"name": "requestsPercent",
"label": "Requests %",
"unit": "RATIO",
"summaryStatistic": false
},
{
"name": "requestsTotal",
"label": "Total Requests",
"unit": "COUNT",
"summaryStatistic": false
}
],
"groupOutlyingValues": {
"enabled": false
},
"groupBy": [
"endpoint"
],
"filters": [
{
"name": "endpoint",
"type": "string",
"required": false
},
{
"name": "response_class",
"type": "enum",
"values": [
{
"value": "0xx"
},
{
"value": "1xx"
},
{
"value": "2xx"
},
{
"value": "3xx"
},
{
"value": "4xx"
},
{
"value": "5xx"
},
{
"value": "6xx"
}
],
"required": false
},
{
"name": "username",
"type": "string",
"required": false
},
{
"name": "contract_type",
"type": "string",
"required": false
},
{
"name": "response_code",
"type": "string",
"required": false
},
{
"name": "response_status",
"type": "enum",
"values": [
{
"value": "success"
},
{
"value": "error"
}
],
"required": false
}
],
"intervals": [
"MONTH",
"WEEK",
"DAY",
"HOUR"
],
"dataRetentionDays": 92,
"limit": 5000,
"maxLimit": 25000,
"links": [
{
"rel": "self",
"href": "/reporting-reports-executor-api/v1/reports/apirequests-by-endpoint/versions/1"
},
{
"rel": "versions",
"href": "/reporting-reports-executor-api/v1/reports/apirequests-by-endpoint/versions"
},
{
"rel": "all-reports",
"href": "/reporting-reports-executor-api/v1/reports"
},
{
"rel": "execute-report",
"href": "/reporting-reports-executor-api/v1/reports/apirequests-by-endpoint/versions/1/report-data"
}
]
}