apirequests-by-agentfamily

The following shows how to generate the apirequests-by-agentfamily 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 agent family.

Business object: account_id

Data available for: 92 days

Required products: EDGECONTROL

Available metrics

MetricDescription
Data metrics
requestsPercentThe percentage of requests per agent family.
requestsTotalTotal requests by agent family.

Available filters

FilterTypeDescription
Optional filters
af_containStringAgent family contains the specified string.
af_end_withStringAgent family ends with the specified string.
af_exact_matchStringAgent family is an exact match for the specified string.
af_matchStringAgent family matches the specified string.
af_not_containStringAgent family does not contain the specified string.
af_not_end_withStringAgent family does not end with the specified string.
af_not_matchStringAgent family does not match the specified string.
af_not_start_withStringAgent family does not start with the specified string.
af_start_withStringAgent family starts with the specified string.
contract_typeStringA contract type ID a given user has access to.
endpointStringAn API configuration registered with Akamai.
http_methodEnumerationA request method indicating the action performed on a resource.
head: Retrieves header information about the target resource, with no message body in the response.
other: Other.
post: Sends information to the server.
get: Retrieves information about the target resource.
delete: Removes all information about the target resource.
put: Replaces existing information about the target resource.
response_classEnumerationA class of HTTP response status codes, from 0xx through 6xx.
0xx: An aborted action on the client side.
1xx: An informational response, like Continue.
2xx: A successful response.
3xx: Success, but a redirect where the thing you want is somewhere else.
4xx: Error, where there’s some problem with the client request.
5xx: Error, where there’s some problem with how the API server responded to the client request.
6xx: Invalid headers (defined by Akamai).
response_codeStringAn HTTP response status code, for example, 201.
response_statusEnumerationAn indicator of whether the HTTP response resulted in success or an error.
success: Successful HTTP response status.
error: Error HTTP response status.
usernameStringName of client generating API request.

POST request

POST /reporting-api/v1/reports/apirequests-by-agentfamily/versions/1/report-data{?start,end}

Sample: /reporting-api/v1/reports/apirequests-by-agentfamily/versions/1/report-data?start=2022-05-01T00%3A00%3A00Z&end=2022-06-01T00%3A00%3A00Z

Query parameters

ParameterTypeSampleDescription
Required
startString2022-05-01T00:00:00ZSpecifies 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.
endString2022-06-01T00:00:00ZSpecifies 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

MemberTypeDescription
objectIdsArraySpecifies unique ID for the account_id objectType you want to report on.
metricsArrayThe set of desired metrics. If omitted, the report includes all available metrics.
filtersMap of arraysSpecifies a set of custom filters, with each filter's name keying an array with each filter's set of values.

Request body:

{
    "objectIds": [
        "account1",
    ],
    "metrics": [
        "requestsPercent",
        "requestsTotal"
    ],
    "filters": {
        "af_contain": [
            "textexample1"
        ],
        "af_end_with": [
            "textexample2"
        ],
        "af_exact_match": [
            "textexample3"
        ],
        "af_match": [
            "textexample4"
        ],
        "af_not_contain": [
            "textexample5"
        ],
        "af_not_end_with": [
            "textexample6"
        ],
        "af_not_match": [
            "textexample7"
        ],
        "af_not_start_with": [
            "textexample8"
        ],
        "af_start_with": [
            "textexample9"
        ],
        "contract_type": [
            "1-3CV382"
        ],
        "endpoint": [
            "endpoint/1",
            "endpoint/2"
        ],
        "http_method": [
            "get",
            "post"
        ],
        "response_class": [
            "3xx",
            "1xx"
        ],
        "response_code": [
            "503",
            "100"
        ],
        "response_status": [
            "success",
            "error"
        ],
        "username": [
            "username1",
            "username2"
        ]
    }
}

GET request

GET /reporting-api/v1/reports/apirequests-by-agentfamily/versions/1/report-data{?start,end,objectIds,metrics,filters}

Sample: `/reporting-api/v1/reports/apirequests-by-agentfamily/versions/1/report-data?start=2022-05-01T00%3A00%3A00Z&end=2022-06-01T00%3A00%3A00Z&objectIds=account1&metrics=requestsPercent%2CrequestsTotal&filters=af_contain%3Dtextexample1%2Caf_contain%3Dtextexample2%2Caf_end_with%3Dtextexample3%2Caf_end_with%3Dtextexample4``

Query parameters

ParameterTypeSampleDescription
Required
startString2022-06-23T13:55:00ZSpecifies 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.
endString2022-06-23T14:15:00ZSpecifies 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
objectIdsStringaccount1Specifies unique ID for the account_id objectType you want to report on.
metricsStringrequestsPercent,‚ÄčrequestsTotalSpecifies 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.
filtersStringcontract_type=‚Äč1-3CV382,endpoint=‚Äčendpoint/1,‚Äčendpoint=‚Äčendpoint/2Specifies 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": "apirequests-by-agentfamily",
        "version": "1",
        "outputType": "FLAT",
        "groupBy": [
            "agent_family"
        ],
        "start": "2022-05-01T00:00:00Z",
        "end": "2022-06-01T00:00:00Z",
        "availableDataEnds": null,
        "suggestedRetryTime": null,
        "rowCount": 4,
        "filters": [
            {
                "name": "af_contain",
                "values": [
                    "textexample1"
                ]
            },
            {
                "name": "af_end_with",
                "values": [
                    "textexample2"
                ]
            },
            {
                "name": "af_exact_match",
                "values": [
                    "textexample3"
                ]
            },
            {
                "name": "af_match",
                "values": [
                    "textexample4"
                ]
            },
            {
                "name": "af_not_contain",
                "values": [
                    "textexample5"
                ]
            },
            {
                "name": "af_not_end_with",
                "values": [
                    "textexample6"
                ]
            },
            {
                "name": "af_not_match",
                "values": [
                    "textexample7"
                ]
            },
            {
                "name": "af_not_start_with",
                "values": [
                    "textexample8"
                ]
            },
            {
                "name": "af_start_with",
                "values": [
                    "textexample9"
                ]
            },
            {
                "name": "contract_type",
                "values": [
                    "1-3CV382"
                ]
            },
            {
                "name": "endpoint",
                "values": [
                    "endpoint/1",
                    "endpoint/2"
                ]
            },
            {
                "name": "http_method",
                "values": [
                    "put",
                    "post"
                ]
            },
            {
                "name": "response_class",
                "values": [
                    "0xx",
                    "5xx"
                ]
            },
            {
                "name": "response_code",
                "values": [
                    "500",
                    "100"
                ]
            },
            {
                "name": "response_status",
                "values": [
                    "success",
                    "error"
                ]
            },
            {
                "name": "username",
                "values": [
                    "username1",
                    "username2"
                ]
            }
        ],
        "columns": [
            {
                "name": "groupBy",
                "label": "agent_family"
            },
            {
                "name": "requestsPercent",
                "label": "Requests %"
            },
            {
                "name": "requestsTotal",
                "label": "Total requests"
            }
        ],
        "objectType": "account_id",
        "objectIds": [
            "account1",
        ]
    },
    "data": [
        {
            "agent_family": "textexample1",
            "requestsPercent": "17",
            "requestsTotal": "2043"
        },
        {
            "agent_family": "textexample2",
            "requestsPercent": "54",
            "requestsTotal": "1319"
        },
        {
            "agent_family": "textexample3",
            "requestsPercent": "82",
            "requestsTotal": "4377"
        },
        {
            "agent_family": "textexample4",
            "requestsPercent": "53",
            "requestsTotal": "2847"
        }
    ],
    "summaryStatistics": {}
}

CSV response

Status 200 text/csv

Response Body:

#METADATA_START
name,apirequests-by-agentfamily
version,1
source,apirequests-by-agentfamily/versions/1
groupBy,agent_family
start,2022-05-01T00:00:00Z
end,2022-06-01T00:00:00Z
availableDataEnds,
suggestedRetryTime,
rowCount,4
objectType,account_id
objectIds,account1
af_contain,textexample1
af_end_with,textexample2
af_exact_match,textexample3
af_match,textexample4
af_not_contain,textexample5
af_not_end_with,textexample6
af_not_match,textexample7
af_not_start_with,textexample8
af_start_with,textexample9
contract_type,1-3CV382
endpoint,endpoint/1,endpoint/2
http_method,put,post
response_class,0xx,5xx
response_code,500,100
response_status,success,error
username,username1,username2
#METADATA_END

#SUMMARYSTATISTICS_START

#SUMMARYSTATISTICS_END

#COLUMNS_START
agent_family,requestsPercent,requestsTotal
#COLUMNS_END

#DATA_START
textexample1,17,2043
textexample2,54,1319
textexample3,82,4377
textexample4,53,2847
#DATA_END

Get report details

This sample Get a report type operation gets the same information you need to run the apirequests-by-agentfamily report as provided in this reference documentation, but available dynamically to your API client application.

GET /reporting-api/v1/reports/apirequests-by-agentfamily/versions/1

Status 200 application/json

Response body:

{
    "name": "apirequests-by-agentfamily",
    "description": "Provides the number of requests by agent family.",
    "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",
            "description": "The percentage of requests per agent family.",
            "label": "Requests %",
            "unit": "RATIO",
            "summaryStatistic": false
        },
        {
            "name": "requestsTotal",
            "description": "Total requests by agent family.",
            "label": "Total Requests",
            "unit": "COUNT",
            "summaryStatistic": false
        }
    ],
    "groupOutlyingValues": {
        "enabled": false
    },
    "groupBy": [
        "agent_family"
    ],
    "filters": [
        {
            "name": "endpoint",
            "type": "string",
            "description": "An API endpoint enabled by Akamai.",
            "required": false
        },
        {
            "name": "http_method",
            "type": "enum",
            "description": "A request method indicating the action performed on a resource.",
            "values": [
                {
                    "value": "head",
                    "description": "Retrieves header information about the target resource, with no message body in the response."
                },
                {
                    "value": "other",
                    "description": "Other."
                },
                {
                    "value": "post",
                    "description": "Sends information to the server."
                },
                {
                    "value": "get",
                    "description": "Retrieves information about the target resource."
                },
                {
                    "value": "delete",
                    "description": "Removes all information about the target resource."
                },
                {
                    "value": "put",
                    "description": "Replaces existing information about the target resource."
                }
            ],
            "required": false
        },
        {
            "name": "contract_type",
            "type": "string",
            "description": "A contract type ID a given user has access to.",
            "required": false
        },
        {
            "name": "af_not_match",
            "type": "string",
            "description": "Agent family does not match the specified string.",
            "required": false
        },
        {
            "name": "af_match",
            "type": "string",
            "description": "Agent family matches the specified string.",
            "required": false
        },
        {
            "name": "af_not_start_with",
            "type": "string",
            "description": "Agent family does not start with the specified string.",
            "required": false
        },
        {
            "name": "af_start_with",
            "type": "string",
            "description": "Agent family starts with the specified string.",
            "required": false
        },
        {
            "name": "response_status",
            "type": "enum",
            "description": "An indicator of whether the HTTP response resulted in success or an error.",
            "values": [
                {
                    "value": "success",
                    "description": "Successful HTTP response status."
                },
                {
                    "value": "error",
                    "description": "Error HTTP response status."
                }
            ],
            "required": false
        },
        {
            "name": "af_exact_match",
            "type": "string",
            "description": "Agent family is an exact match for the specified string.",
            "required": false
        },
        {
            "name": "username",
            "type": "string",
            "description": "Name of client generating API request.",
            "required": false
        },
        {
            "name": "af_not_end_with",
            "type": "string",
            "description": "Agent family does not end with the specified string.",
            "required": false
        },
        {
            "name": "af_end_with",
            "type": "string",
            "description": "Agent family ends with the specified string.",
            "required": false
        },
        {
            "name": "response_code",
            "type": "string",
            "description": "An HTTP response status code, for example, 201.",
            "required": false
        },
        {
            "name": "response_class",
            "type": "enum",
            "description": "A class of HTTP response status codes, from 0xx through 6xx.",
            "values": [
                {
                    "value": "0xx",
                    "description": "An aborted action on the client side."
                },
                {
                    "value": "1xx",
                    "description": "An informational response, like Continue."
                },
                {
                    "value": "2xx",
                    "description": "A successful response."
                },
                {
                    "value": "3xx",
                    "description": "Success, but a redirect where the thing you want is somewhere else."
                },
                {
                    "value": "4xx",
                    "description": "Error, where there’s some problem with the client request."
                },
                {
                    "value": "5xx",
                    "description": "Error, where there’s some problem with how the API server responded to the client request."
                },
                {
                    "value": "6xx",
                    "description": "Invalid headers (defined by Akamai)."
                }
            ],
            "required": false
        },
        {
            "name": "af_not_contain",
            "type": "string",
            "description": "Agent family does not contain the specified string.",
            "required": false
        },
        {
            "name": "af_contain",
            "type": "string",
            "description": "Agent family contains the specified string.",
            "required": false
        }
    ],
    "intervals": [
        "MONTH",
        "WEEK",
        "DAY",
        "HOUR"
    ],
    "dataRetentionDays": 92,
    "limit": 5000,
    "maxLimit": 25000,
    "links": [
        {
            "rel": "self",
            "href": "/reporting-api/v1/reports/apirequests-by-agentfamily/versions/1"
        },
        {
            "rel": "versions",
            "href": "/reporting-api/v1/reports/apirequests-by-agentfamily/versions"
        },
        {
            "rel": "all-reports",
            "href": "/reporting-api/v1/reports"
        },
        {
            "rel": "execute-report",
            "href": "/reporting-api/v1/reports/apirequests-by-agentfamily/versions/1/report-data"
        }
    ]
}