---
title: Billing report
description: >-
  Returns paginated billing report records for child and grandchild companies
  within the specified date range. Supports filtering by license type.   To
  retrieve a billing report for a specific billing c
category: API Reference
lastModified: '2026-05-18'
url: >-
  https://developer.lastpass.com/business/docs/managed-companies-reports/list-billing-reports.md
---

# Billing report

`GET /v1/managed-companies-reports/billing-reports`

**Operation ID**: `listBillingReports`

## Quick Start

```http
GET https://api.lastpass.com/business/v1/managed-companies-reports/billing-reports
Authorization: api-key <your-api-key>
```

Returns paginated billing report records for child and grandchild companies within the specified date range. Supports filtering by license type. 

To retrieve a billing report for a specific billing cycle, first use the **Billing cycles** resource to fetch available cycles and use those dates as query parameters.


## Parameters

| Name | In | Type | Required | Description |
|------|-----|------|----------|-------------|
| `start-date` | query | string | Yes | Start of the billing report date range (inclusive). Must be in ISO 8601 date format. *(format: date)* |
| `end-date` | query | string | Yes | End of the billing report date range (inclusive). Must be in ISO 8601 date format. *(format: date)* |
| `license-type` | query | string | No | The license type of a company in a billing report. - `msp-distributor` — LastPass MSP distributor. - `managed-msp` — LastPass MSP managed company. - `msp-managed-company` — LastPass managed MSP.  *(allowed: msp-distributor, managed-msp, msp-managed-company)* |
| `max-results` | query | integer | No | The number of elements to retrieve. *(format: int32; default: 10; range: 1–50)* |
| `page-token` | query | string | No | Continuation token used to retrieve the next page from the collection of resources. This parameter should be set with the value returned as `nextPageToken`. |

## Responses

### 200

OK

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `nextPageToken` | string | No | Token to retrieve the next page; null if no further pages exist. *(nullable)* |
| `items` | array of ManagedCompaniesBillingReportData | Yes | List of billing report entries in the current page. *(nullable)* |

#### Example

```json
{
  "nextPageToken": "string",
  "items": [
    {
      "id": 0,
      "name": "string",
      "licenseType": "msp-distributor",
      "addons": [
        "mfa"
      ],
      "dailyAverageLicenseCount": 0,
      "parentId": 0
    }
  ]
}
```

### 400

Bad Request

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 401

Unauthorized

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 402

Subscription Expired

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 403

Forbidden

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 404

Not Found

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 409

Conflict

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 429

Too Many Requests

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

### 500

Internal Server Error

#### Schema

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `title` | string | No | Short, human-readable summary of the problem type. *(nullable)* |
| `status` | integer | No | HTTP status code. *(nullable)* |
| `detail` | string | No | Human-readable explanation specific to this occurrence of the problem. *(nullable)* |
| `instance` | string | No | URI reference identifying the specific occurrence of the problem. *(nullable)* |
| `errors` | array of ProblemDetailsError | No | List of individual field-level validation errors, if applicable. *(nullable)* |

#### Example

```json
{
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string"
    }
  ]
}
```

