Monitor performance

Monitor the performance of your site and services through reports. Each report returns data based on the time intervals, filters, and metrics you set.

📘

API version support

The Akamai PowerShell Reporting module supports both Reporting API v1 and v2. While both APIs provide access to reporting data, they’re built on different data models.

  • Reporting API v2, the current version, introduces a more flexible query model that lets you dynamically select metrics, dimensions, filters, and grouping options. It also supports multidimensional queries, asynchronous report generation, and pagination.
  • Reporting API v1 functions have the Legacy prefix added to their command names.

List all report types

Get a list of your available report types.

Use the Get-ReportType command.

Get-ReportType
reportName    : API usage report data
description   : Provides requests and volume for API traffic.
reportLink    : /reporting-api/v2/reports/common/apis/usage
status        : PUBLISHED
ProductFamily : common
ReportingArea : apis
Report        : usage

reportName    : CDN emissions report data
description   : Provides CDN traffic hits, volume and calculated carbon emissions data.
reportLink    : /reporting-api/v2/reports/delivery/traffic/emissions
status        : PUBLISHED
ProductFamily : delivery
ReportingArea : traffic
Report        : emissions
...

Sort report list types

You can filter the report types to narrow down and manage results.

Filter the report types with Get-ReportType by -ProductFamily and -ReportingArea or use a sort term.

Note: If you don't know which product families and reporting areas are available to you, run the Get-ReportProductFamily and Get-ReportingArea commands.

# Request: Gets a list of all reports by a specified product family and reporting area
Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm'

# Output: All reports by a specified product family and reporting area (truncated)
reportName    : IVM image traffic report data
description   : Provides traffic data for images configured to use Image and Video Manager.
reportLink    : /reporting-api/v2/reports/delivery/ivm/image-traffic
status        : PUBLISHED
ProductFamily : delivery
ReportingArea : ivm
Report        : image-traffic

reportName    : IVM image stats report data
description   : Provides policy stats data for images configured to use Image and Video Manager.
reportLink    : /reporting-api/v2/reports/delivery/ivm/image-policy-stats
status        : PUBLISHED
ProductFamily : delivery
ReportingArea : ivm
Report        : image-policy-stats
...
# Request: Gets a sorted list of all report names with their product families and reporting areas
Get-ReportType | Sort-Object -Property reportName | Select-Object reportName, ProductFamily, ReportingArea

# Output: All sorted report names with their product families and reporting areas (truncated)
reportName                         ProductFamily ReportingArea
----------                         ------------- -------------
API usage details report data      common        apis
API usage report data              common        apis
CDN emissions report data          delivery      traffic
CDN traffic report data            delivery      traffic
IVM image stats report data        delivery      ivm
IVM image traffic report data      delivery      ivm
Purge objects details report data  delivery      purge
Purge requests details report data delivery      purge
# Request: Gets a sorted list of reports with "IVM" in the name
Get-ReportType | where reportName -Like *IVM* | Sort-Object -Property reportName | Select-Object reportName, ProductFamily, ReportingArea

# Output: All sorted reports with "IVM" in the name
reportName                    ProductFamily ReportingArea
----------                    ------------- -------------
IVM image stats report data   delivery      ivm
IVM image traffic report data delivery      ivm

Get a specific type

Get details about a report type's available metrics and other metadata.

Specify a value for the -Report parameter along with the -ProductFamily and ReportingArea using the Get-ReportType command.

Note: The -Report parameter accepts a value from the Report property returned by Get-ReportType when fetching all report types.

Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm' -Report 'image-policy-stats'
name                 : IVM image stats report data
description          : Provides policy stats data for images configured to use Image and Video Manager.
status               : PUBLISHED
metrics              : {@{name=hits; description=The number of received image hits.; type=LONG; filterable=True; mandatory=False}, @{name=bytes; description=The number of delivered bytes of image content.; type=LONG; filterable=True; mandatory=False}, @{name=hits200; description=The number of requests that returned successful responses.; 
type=LONG; filterable=True; mandatory=False}, @{name=bytes200; description=The volume of data served with successful responses.; type=LONG; filterable=True; mandatory=False}…}
dimensions           : {@{name=cpcode; description=Content provider (CP) code.; type=LONG; filterable=True; mandatory=False; filterType=TEXT; authorizable=True}, @{name=time1day; description=Datapoint timestamp for 1 day granularity.; type=LONG; filterable=True; mandatory=False; filterType=TEXT; authorizable=False}, @{name=token; description=The Image and Video Manager policy token for which you want data included.; type=STRING; filterable=True; mandatory=False; filterType=TEXT; authorizable=False}, @{name=tokenWithVersion; description=The Image and Video Manager policy token with the version for which you want data included.; type=STRING; filterable=True; mandatory=False; filterType=TEXT; authorizable=False}…}
predefinedTimeRanges : {LAST_1_DAY, LAST_1_WEEK, LAST_30_DAYS, LAST_90_DAYS}
defaults             : @{defaultTimeRange=; defaultMetrics=System.Object[]; defaultSortBys=System.Object[]}
limits               : @{maxDimensions=4; maxDateRangeInDays=90; maxRetentionInDays=90; inListFilterMaxValues=10000; textFilterMaxLength=100; dataPointsLimit=50000}
links                : {@{rel=self; href=/reporting-api/v2/reports/delivery/ivm/image-policy-stats; describedBy=/reporting-api/v2/reports/schema; allow=System.Object[]}, @{rel=data; href=/reporting-api/v2/reports/delivery/ivm/image-policy-stats/data; allow=System.Object[]}}

Use filters and metrics

You can reduce the output of most reports using filters and metrics.

Metrics are available for reports returned with Get-ReportType. In addition, this operation supports dimensions.

# Request: Using metrics
$Report = Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm' -Report 'image-policy-stats'
$Report.metrics

# Output: Metrics
name        : hits
description : The number of received image hits.
type        : LONG
filterable  : True
mandatory   : False

name        : bytes
description : The number of delivered bytes of image content.
type        : LONG
filterable  : True
mandatory   : False
# Request: Using dimensions
$Report = Get-ReportType -ProductFamily 'delivery' -ReportingArea 'ivm' -Report 'image-policy-stats'
$Report.dimensions

# Output: Dimensions
name         : cpcode
description  : Content provider (CP) code.
type         : LONG
filterable   : True
mandatory    : False
filterType   : TEXT
authorizable : True

name         : time1day
description  : Datapoint timestamp for 1 day granularity.
type         : LONG
filterable   : True
mandatory    : False
filterType   : TEXT
authorizable : False

Get report data

You can get your report data in two ways: create a new report or get an existing one.

Generate a report

Run the New-Report command. This method doesn't cache results and is better for large data requests and non-repeating requests.

Large reports can take significant time to generate and may cause synchronous requests to time out. In this case, pass the -Async switch parameter for larger report requests. This returns a query ID you can use to get the report later with Get-Report. If you omit -Async, the command waits for the report to be generated and returns the data when ready.

Note: If you don't know which product families and reporting areas are available to you, run the Get-ReportProductFamily and Get-ReportingArea commands.

# Get report results synchronously
$Report = New-Report -Report 'usage' -ProductFamily 'common' -ReportingArea 'apis' -Start "2026-03-28T00:00:00Z" -End "2026-04-27T00:00:00Z"

# Get report results asynchronously
$AsyncReport = New-Report -Report 'usage' -ProductFamily 'common' -ReportingArea 'apis' -Start "2026-03-28T00:00:00Z" -End "2026-04-27T00:00:00Z" -Async
$Results = $AsyncReport | Get-Report

Get a report

Use Get-Report to return available options for a report. Note that it can take a few minutes to actually get to the report if you've just run the New-Report command with the -Async switch parameter.

You need to pass a report name, product family, and reporting area, along with a query ID returned to you from the New-Report command.

Note: If you don't know which product families and reporting areas are available to you, run the Get-ReportProductFamily and Get-ReportingArea commands.

$Results = Get-Report -Report 'usage' -ProductFamily 'common' -ReportingArea 'apis' -QueryID $Report.QueryID

Parse results

Assign your report results to a variable and parse out the information you need to analyze your data.

  1. Printing the results of a report saved to $Report may not display all of the information contained within the variable. To see more information, pipe your results to Format-List or fl.

    $Results | fl
    data     : {@{endpoint=config-dns/2; requestsSum=3025636; requestsPercentage=53.3498703738414; bytesSum=1080925151243; bytesPercentage=79.5413296922291}, @{endpoint=appsec/1; requestsSum=747816; 
             requestsPercentage=13.1859505451034; bytesSum=5167106681; bytesPercentage=0.380228488157313}, @{endpoint=config-gtm/1; requestsSum=569048; requestsPercentage=10.0338034834639; bytesSum=228769938787; 
             bytesPercentage=16.8343433435726}, @{endpoint=identity-management/3; requestsSum=394910; requestsPercentage=6.96329542262642; bytesSum=622262684; bytesPercentage=0.0457900357358679}…}
    metadata : @{name=API usage report data; links=System.Object[]; rows=69; totalRows=69; requestTime=6/8/2026 2:06:41 PM; evictionTime=6/15/2026 2:07:02 PM}
  2. Export the results of your request to wherever you normally keep report data.

    $Results.data | Export-CSV results.csv

Did this page help you?