---
title: "Get Customer and License Monthly Report"
method: POST
path: "/msp/reporting/v2/reports/mspChargebackLicenseStateMonthlyReport"
tags: ["Chargeback and Telemetry Reports"]
---

# Get Customer and License Monthly Report

`POST /msp/reporting/v2/reports/mspChargebackLicenseStateMonthlyReport`

Returns comprehensive monthly report detailing license, feature, and add-on information for all MSP customers. This data represents a snapshot as of the first day of the month and is available for the past 18 months.

## Headers

- `Authorization` string, required

## Request body

- GetCustomerAndLicenseMonthlyReportRequest — Specify the details for getting customer and license monthly report details.
  - `pageToken` string — The token that points to the next page of results. This value is returned in the 'nextPageToken' field of a previous response. If this is your first request for the data, leave this field empty.
  - `filters` FilterTypeForChargebackLicenseStateReport
    - `pageSize` integer — Specify the maximum number of records that should returned in a response. The default page size is 100 records. The maximum limit is 500 records. If you specify the pageSize, value from the first API call will be used for the subsequent calls, even if you change the pageSize later on.
    - `filterBy` FilterAttributeForChargebackLicenseStateReport[] — Filters if needs to be applied.
      - `fieldName` 'accountName' | 'addonName' | 'customerGlobalId' | 'customerName' | 'date' | 'edition' | 'instanceId' | 'isEnabled' | 'licenseExpiry' | 'licenseType' | 'productId' | 'productName' | 'productModule' | 'servicePlanId' | 'servicePlanName' — Specify the name of the filter attribute.
      - `value` string — Specify value of column that needs to be filtered. For CONTAINS operator - this can be array of either int or string. For other operators, depending on the datatype of fieldName attribute this can be either int / string / RFC3339 date format. This is case sensitive.
      - `operator` 'EQUAL' | 'NOTEQUAL' | 'CONTAINS' | 'LT' | 'GT' | 'LTE' | 'GTE' — Operator for specified filters. All string comparisons will be case sensitive. Supported filters are: - EQUAL: This will return the data with exact match for given field name. - NOTEQUAL: This will return the data not matching with given values. - CONTAINS: Value for this operator will be an array. This will return data which matches with any value mentioned in array. - LT: This is the 'LESS THAN' comparison operator. - LTE: This is the 'LESS THAN OR EQUAL TO' comparison operator. - GT: This is the 'GREATER THAN' comparison operator. - GTE: This is the 'GREATER THAN OR EQUAL TO' comparison operator. For a particular field name an operator can be used once at max. For columns having string data type 'LT', 'LTE', 'GT', 'GTE' operators will work lexicographically.

## Response `200`

Ok

- GetCustomerAndLicenseMonthlyReportResponse
  - `data` CustomerAndLicenseMonthlyReportData[] — The list contains details about a customer's license features/addons as on the 1st day of the every month for the last 18 months.
    - `accountName` string — The account name of the customer.
    - `addonName` string — The name of the addon. For valid addons and their names, refer - https://developer.druva.com/docs/customer-and-license-details-monthly-report/
    - `customerGlobalId` string — Unique ID of the customer.
    - `customerName` string — The name of the customer.
    - `date` string, date — Date indicates the date of license features/addons. Date is specified in 'RFC3339' format.
    - `edition` 'business' | 'enterprise' | 'elite' — The name of the edition.
    - `instanceId` integer — The ID of the instance.
    - `licenseExpiry` string, date — The expiry date of the license.
    - `licenseType` 'Commercial' | 'Evaluation' | 'Sandbox' — Type of the tenant. Right now stats for only commercial customers are reported.
    - `productId` 1 | 2 — The ID of the product. 1 - Enterprise Workloads, 2 - SaaS Apps and Endpoints. This field will be updated in the future for addition of new products as and when applicable. For valid products and their Product Features, see - https://developer.druva.com/docs/msp-product-and-attribute-values
    - `productModule` 'Enterprise Workloads' | 'Microsoft 365' | 'Endpoints' | 'Google Workspace' | 'D365' | 'SFDC' — The name of the product module. This field will be updated in the future for addition of new product modules as and when applicable.
    - `productName` 'Enterprise Workloads' | 'SaaS Apps and Endpoints' — The name of the product. This field will be updated in the future for addition of new products as and when applicable.
    - `servicePlanId` integer — The unique ID of the MSP service plan assigned to the tenant. If updateTenant operation is performed multiple times in a day to change the service plan associated with that tenant, the last updated value of the day will be returned for that day. Use Get service plan API to get details about a service plan.
    - `servicePlanName` string — The name of the MSP service plan assigned to the tenant for the date indicated by column 'date'. If updateTenant operation is performed multiple times in a day to change the service plan associated with that tenant, the last updated value of the day will be returned for that day.
    - `dcpUniqueKey` string — The key which is used to uniquely identify each record in the report.
  - `nextPageToken` string — The token to access the next page of results. This parameter will be empty for the last page of results.
  - `filters` object — All filters passed in request are returned in response
    - `pageSize` integer — Maximum number of records that can be returned in the response.
    - `filterBy` FilterAttributeForChargebackLicenseStateReport[] — Filters applied in the request.
      - `fieldName` 'accountName' | 'addonName' | 'customerGlobalId' | 'customerName' | 'date' | 'edition' | 'instanceId' | 'isEnabled' | 'licenseExpiry' | 'licenseType' | 'productId' | 'productName' | 'productModule' | 'servicePlanId' | 'servicePlanName' — Specify the name of the filter attribute.
      - `value` string — Specify value of column that needs to be filtered. For CONTAINS operator - this can be array of either int or string. For other operators, depending on the datatype of fieldName attribute this can be either int / string / RFC3339 date format. This is case sensitive.
      - `operator` 'EQUAL' | 'NOTEQUAL' | 'CONTAINS' | 'LT' | 'GT' | 'LTE' | 'GTE' — Operator for specified filters. All string comparisons will be case sensitive. Supported filters are: - EQUAL: This will return the data with exact match for given field name. - NOTEQUAL: This will return the data not matching with given values. - CONTAINS: Value for this operator will be an array. This will return data which matches with any value mentioned in array. - LT: This is the 'LESS THAN' comparison operator. - LTE: This is the 'LESS THAN OR EQUAL TO' comparison operator. - GT: This is the 'GREATER THAN' comparison operator. - GTE: This is the 'GREATER THAN OR EQUAL TO' comparison operator. For a particular field name an operator can be used once at max. For columns having string data type 'LT', 'LTE', 'GT', 'GTE' operators will work lexicographically.
  - `lastSyncTimestamp` string, date — Last time sync up timestamp date. Sync up time does not guarantee that consumption stats till this time are included in reported stats. Reported consumption stats may be stale upto 48 hours.

## Other responses

- `400` — Bad Request
- `401` — The request did not include an authentication token or an expired authentication token was supplied.
- `500` — The request was not processed due to an internal error.

---

[API](https://skmtc.dev/druva/apis/authentication.md) · [All operations](https://skmtc.dev/druva/apis/authentication/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/druva/authentication/revisions/2af2bf148b25/schema)
