---
title: "Create Report"
method: POST
path: "/network-reporting/v1/reports"
tags: ["Reporting"]
---

# Create Report

`POST /network-reporting/v1/reports`

This API endpoint allows users to generate reports based on report-specific filters, report periods, and scheduling options. Reports can be scheduled for one-time or recurring execution and sent by email in multiple formats.

## General Parameters

| Parameter | Description | Required |
|-----------|-------------|----------|
| **name** | Name of the report. | true |
| **type** | Type of the report. <br> Refer **Report Type** for more details. | true |
| **timeZone** | User time zone in IANA format (for example, `America/New_York`). | true |
| **filters** | Filters applied to refine report data. <br> Refer **Report Filter** for more details. | true |
| **reportPeriod** | Time range defining the report data scope. <br> Refer **Report Period** for more details. | true |
| **reportSchedule** | Defines how often the report is generated. <br> Refer **Report Schedule** for more details. | true |
| **email** | Email recipients and report output formats. | false |

## Report Type

The following report types and filter mappings are derived from Reports Metadata.

| Report Name | Report Type | Supported Filters |
|-------------|-------------|------------------|
| Application Analytics | **appAnalytics** | `appCategories`, `connectionType`, `deviceTypes`, `scope`, `sites` |
| Capacity Planning | **capacityPlanning** | `connectionType`, `deviceTypes`, `excludeDevices`, `gatewayCapacityThreshold`, `gatewayPercentageOfTimeGreaterThanThreshold`, `includeDevices`, `scope`, `sites`, `switchCapacityThreshold`, `switchPercentageOfTimeGreaterThanThreshold` |
| Client Inventory | **clientInventory** | `connectionType`, `deviceTypes`, `excludeDevices`, `excludeUCClients`, `includeDevices`, `includeUCClients`, `includeUCModelOs`, `includeUCRole`, `includeUCSSIDs`, `includeUCVendor`, `scope`, `sites` |
| Client Session | **clientSession** | `connectionType`, `deviceTypes`, `excludeDevices`, `excludeUCClients`, `includeDevices`, `includeUCClients`, `includeUCModelOs`, `includeUCRole`, `includeUCSSIDs`, `includeUCVendor`, `scope`, `sites` |
| Device Uptime | **deviceUptime** | `deviceTypes`, `excludeDevices`, `includeDevices`, `scope`, `sites` |
| Licenses | **licenses** | `scope` (global only) |
| MSP Customer (For MSP Customers) | **mspcustomer** | `deviceOwnership`, `scope` (global only) |
| MSP Inventory (For MSP Customers) | **mspinventory** | `scope` (global only) |
| MSP License (For MSP Customers) | **msplicense** | `scope` (global only) |
| MSP Subscription (For MSP Customers) | **mspsubscription** | `scope` (global only) |
| Network Usage | **networkUsage** | `deviceTypes`, `excludeDevices`, `excludeUCSSIDs`, `includeDevices`, `includeUCSSIDs`, `scope`, `sites` |
| Resource Utilization | **resourceUtilization** | `apCpuUtilThreshold`, `apMemoryUtilThreshold`, `deviceTypes`, `excludeDevices`, `gatewayCpuUtilThreshold`, `gatewayMemoryUtilThreshold`, `includeDevices`, `scope`, `sites`, `switchCpuUtilThreshold`, `switchMemoryUtilThreshold` |
| RF Health | **rfHealth** | `excludeDevices`, `includeDevices`, `radioFrequency`, `scope`, `sites` |
| Security Compliance | **securityCompliance** | `scope` (global only) |
| Visitor | **visitor** | `scope`, `ssids` |
| WIDS | **wids** | `scope`, `sites` |
| Custom | **custom** | Filter support varies with respect to KPI selection. Refer Reports Metadata API |

## Report Filter

| Filter Name | Filter Type | Description | Required |
|--------|-------------|-------------|----------|
| Scope | **scope** | Scope filter for report. Allowed values are `global` and `sites`. | true if applicable |
| Sites | **sites** | Site IDs filter for report. | true if `scope` is `sites` |
| Device Types | **deviceTypes** | Device type filter. Allowed values: `access_points`, `switches`, `gateways`. | true if applicable |
| Connection Type | **connectionType** | Connection type filter. Allowed values: `wired`, `wireless`, `all`. | true if applicable |
| Device Ownership | **deviceOwnership** | Device ownership type filter. Allowed values: `MSP`, `CUSTOMER`. | true if applicable |
| Application Categories | **appCategories** | Application category filter. Allowed values from metadata (for example, `Any`). | true if applicable |
| Radio Frequency | **radioFrequency** | Frequency band filter. Allowed values: `2.4GHz`, `5GHz`, `6GHz`. | true if applicable |
| SSID | **ssids** | SSID values used for visitor reports. | true if applicable |
| Include Devices | **includeDevices** | Device serial numbers to include in report output. | false |
| Exclude Devices | **excludeDevices** | Device serial numbers to exclude from report output. | false |
| Include Unified Clients | **includeUCClients** | Unified client identifiers to include. | false |
| Exclude Unified Clients | **excludeUCClients** | Unified client identifiers to exclude. | false |
| Include Unified Client Vendor | **includeUCVendor** | Unified client vendor values to include. | false |
| Include Unified Client Model/OS | **includeUCModelOs** | Unified client model or OS values to include. | false |
| Include Unified Client Role | **includeUCRole** | Unified client role values to include. | false |
| Include Unified Client SSIDs | **includeUCSSIDs** | Unified client SSIDs to include. | false |
| Exclude Unified Client SSIDs | **excludeUCSSIDs** | Unified client SSIDs to exclude. | false |
| AP CPU Utilization Threshold | **apCpuUtilThreshold** | AP CPU utilization threshold filter. Range: `0-100` (default: `70`). | false |
| Switch CPU Utilization Threshold | **switchCpuUtilThreshold** | Switch CPU utilization threshold filter. Range: `0-100` (default: `70`). | false |
| Gateway CPU Utilization Threshold | **gatewayCpuUtilThreshold** | Gateway CPU utilization threshold filter. Range: `0-100` (default: `70`). | false |
| AP Memory Utilization Threshold | **apMemoryUtilThreshold** | AP memory utilization threshold filter. Range: `0-100` (default: `70`). | false |
| Switch Memory Utilization Threshold | **switchMemoryUtilThreshold** | Switch memory utilization threshold filter. Range: `0-100` (default: `70`). | false |
| Gateway Memory Utilization Threshold | **gatewayMemoryUtilThreshold** | Gateway memory utilization threshold filter. Range: `0-100` (default: `70`). | false |
| Switch Capacity Threshold | **switchCapacityThreshold** | Switch capacity threshold filter. Range: `0-99` (default: `40`). | false |
| Switch Percentage Of Time Greater Than Threshold | **switchPercentageOfTimeGreaterThanThreshold** | Percentage of time switch exceeds threshold. Range: `0-99` (default: `25`). | false |
| Gateway Capacity Threshold | **gatewayCapacityThreshold** | Gateway capacity threshold filter. | false |
| Gateway Percentage Of Time Greater Than Threshold | **gatewayPercentageOfTimeGreaterThanThreshold** | Percentage of time gateway exceeds threshold. | false |

## Report Period

| Report Period | Allowed Fields | Allowed Schedules |
|--------------|----------------|------------------|
| **SNAPSHOT** | None | `ONE_TIME`, `EVERY_DAY`, `EVERY_WEEK`, `EVERY_MONTH` |
| **LAST_DAY** | `sliceTime` | `ONE_TIME`, `EVERY_DAY` |
| **LAST_WEEK** | `sliceTime`, `sliceDays` | `ONE_TIME`, `EVERY_WEEK`, `EVERY_MONTH` |
| **LAST_MONTH** | `sliceTime`, `sliceDays` | `ONE_TIME`, `EVERY_MONTH` |
| **CUSTOM_RANGE** | `from`, `to` timestamps (without `sliceDays` or `sliceTime`) | `ONE_TIME` |

`sliceTime` and `sliceDays` are applicable only for `resourceUtilization` and `capacityPlanning` report types.

## Report Schedule

| Schedule Type | Required Fields | Applicable Report Periods |
|--------------|----------------|---------------------------|
| **ONE_TIME** | None | All report periods |
| **EVERY_DAY** | `startDate`, `endDate` | `LAST_DAY` |
| **EVERY_WEEK** | `startDate`, `endDate` | `LAST_WEEK` |
| **EVERY_MONTH** | `startDate`, `endDate` | `LAST_WEEK`, `LAST_MONTH` |

## Request body

- object
  - `report` CreateReportsInput
    - `name` string, required
    - `type` string, const, required — The type of the resource.
    - `kpiWidgets` KPIWidgetInput[]
      - `kpiWidget` string — Specifies the KPI Widget
      - `renderType` string — Specifies the render type. Valid values can be got dynamically via GET /network-reporting/v1/reports-meta.
      - `columns` string[]
    - `timeZone` string, required
    - `reportPeriod` ReportPeriodInput, required
      - `type` 'SNAPSHOT' | 'LAST_DAY' | 'LAST_WEEK' | 'LAST_MONTH' | 'CUSTOM_RANGE', required
      - `sliceTime` object
        - `from` string, time — Specifies the `from` slice time timestamp in UTC+0 timezone (RFC 3339 format).
        - `to` string, time — Specifies the `to` slice time timestamp in UTC+0 timezone (RFC 3339 format).
      - `sliceDays` string[]
      - `from` string, date-time — Specifies the report period `from` date timestamp in UTC+0 timezone (RFC 3339 format).
      - `to` string, date-time — Specifies the report period `to` date timestamp in UTC+0 timezone (RFC 3339 format).
    - `reportSchedule` ReportScheduleInput, required
      - `recurrenceType` 'EVERY_MONTH' | 'EVERY_WEEK' | 'EVERY_DAY' | 'ONE_TIME', required
      - `startDate` string, date-time — Specifies the `start` date timestamp in UTC+0 timezone (RFC 3339 format).
      - `endDate` string, date-time — Specifies the `end` date timestamp in UTC+0 timezone (RFC 3339 format).
    - `filters` Filter[], required — Report filters
    - `email` object
      - `recipients` Email[] — Specifies the user emails
      - `formats` ReportFormat[] — Specifies the Export Preferences

## Response `201`

Successfully created report.

- object — Created report resource.
  - `report` Report, required
    - `id` string, required
    - `type` string, required — Type of the resource.
    - `name` string — Name of the webhook. Must be unique per customer.
    - `reportScope` ReportScope — Specifies the scope type and target values for the report
      - `scopeType` string
      - `values` unknown[]
        - unknown
    - `reportType` string — Specifies the particular report type (lowerCamelCase or lowercase). Valid values: appAnalytics, capacityPlanning, clientInventory, clientSession, custom, deviceUptime, licenses, mspcustomer, mspinventory, msplicense, mspsubscription, networkUsage, resourceUtilization, rfHealth, securityCompliance, visitor, wids. Refer to the Create Report operation documentation for complete details on supported types and their associated filters.
    - `createdBy` string — The user who saved the report.
    - `createdAt` string, date-time, required — Provides the timestamp ISO 8601 format when the computed client location is persisted in database.
    - `generation` integer, required — Generation number of the webhook.
    - `updatedBy` string — The user who modified the report / report schedule.
    - `updatedAt` string, date-time, required — Time when the resource was last updated.
    - `lastModifiedBy` string — The user who modified the report / report schedule.
    - `lastModifiedAt` string, date-time — Specifies the report modified timestamp in UTC+0 timezone (RFC 3339 format).
    - `reportSchedule` ReportSchedule — Specifies the report Schedule
      - `scheduleType` 'ONE_TIME' | 'EVERY_DAY' | 'EVERY_WEEK' | 'EVERY_MONTH' — Specifies the Schedule types Once, Every Day, Every Week, Every Month etc.
      - `lastRunTs` string, date-time — Specifies the timestamp of the last report run in UTC+0 timezone (RFC 3339 format).
      - `lastRunStatus` 'NEW' | 'ACTIVE' | 'PAUSED' | 'STOPPED' | 'COMPLETED' | 'ERROR' — Specifies the run status as New, Active, Paused, Stopped, Completed, or Error
      - `nextRunTs` string, date-time — Specifies the report period next run timestamp in UTC+0 timezone (RFC 3339 format).
      - `completedRuns` integer — Total number of completed runs for the report schedule.
      - `totalRuns` integer — Total number of runs that the report schedule has executed.
      - `scheduleEnd` string, date-time — Specifies the scheduled end timestamp in UTC+0 timezone (RFC 3339 format).

## Other responses

- `400` — Invalid input received.
- `401` — Unauthorized. Authentication credentials are required or invalid.
- `403` — Forbidden: Access is denied.
- `409` — Conflict. The request could not be completed because the resource already exists or is in a conflicting state.
- `429` — Too Many Requests. The user has sent too many requests in a given amount of time.
- `500` — Internal Server Error. An unexpected error occurred on the server.

---

[API](https://skmtc.dev/arubanetworks/apis/authorization.md) · [All operations](https://skmtc.dev/arubanetworks/apis/authorization/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arubanetworks/authorization/revisions/74c95058b11f/schema)
