---
title: "Reports"
description: "Retrieve revenue, bookings, utilization, client, balance, overdue, and pipeline reports."
canonical_url: "https://requiply.com/docs/en/developers/typescript-sdk/reports"
---
# Reports

> Retrieve revenue, bookings, utilization, client, balance, overdue, and pipeline reports.

All report resources require a secret key in trusted server code. Report parameter objects are optional, and every method also accepts request options as its final argument.

## `reports.revenue()`

```ts
reports.revenue(
  params?: RevenueReportParams,
  options?: RequiplyRequestOptions,
): Promise<RevenueReportResponse>
```

Parameters: `dateFrom`, `dateTo`, `dateField` (`startDate`, `createdAt`, or `endDate`), `groupBy` (`day`, `week`, `month`, `category`, or `status`), and `excludeCancelled`.

```ts
const report = await requiply.reports.revenue({
  dateFrom: '2026-07-01',
  dateTo: '2026-07-31',
  groupBy: 'week',
  excludeCancelled: true,
});
```

Returns currency, resolved filters, totals, breakdown rows, and optional `notes`.

## `reports.bookingsSummary()`

```ts
reports.bookingsSummary(
  params?: BookingsSummaryParams,
  options?: RequiplyRequestOptions,
): Promise<BookingsSummaryResponse>
```

Parameters: `dateFrom`, `dateTo`, and `dateField`. Returns booking and revenue totals, cancellation and completion rates, timing metrics, and status breakdowns. Average lead time and duration can be `null`; status IDs can be `null`.

```ts
const summary = await requiply.reports.bookingsSummary({
  dateFrom: '2026-07-01',
  dateTo: '2026-07-31',
});
```

## `reports.utilization()`

```ts
reports.utilization(
  params?: UtilizationReportParams,
  options?: RequiplyRequestOptions,
): Promise<UtilizationReportResponse>
```

Parameters: `dateFrom`, `dateTo`, `groupBy` (`overall`, `itemGroup`, or `category`), `sort` (`highest` or `lowest`), and `limit`. The detailed `breakdown` is optional.

```ts
const utilization = await requiply.reports.utilization({
  groupBy: 'itemGroup',
  sort: 'highest',
  limit: 10,
});
```

## `reports.topItems()`

```ts
reports.topItems(
  params?: TopItemsReportParams,
  options?: RequiplyRequestOptions,
): Promise<TopItemsReportResponse>
```

Parameters: `dateFrom`, `dateTo`, `rankBy` (`revenue`, `bookings`, `rentedDays`, or `unitsRented`), and `limit`. Category IDs and names in entries can be `null`.

```ts
const topItems = await requiply.reports.topItems({ rankBy: 'revenue', limit: 10 });
```

## `reports.topClients()`

```ts
reports.topClients(
  params?: TopClientsReportParams,
  options?: RequiplyRequestOptions,
): Promise<TopClientsReportResponse>
```

Parameters: `dateFrom`, `dateTo`, `rankBy` (`spend` or `bookings`), `excludeCancelled`, and `limit`. Client contact and name fields can be `null`.

```ts
const topClients = await requiply.reports.topClients({ rankBy: 'spend', limit: 10 });
```

## `reports.outstanding()`

```ts
reports.outstanding(
  params?: OutstandingReportParams,
  options?: RequiplyRequestOptions,
): Promise<OutstandingReportResponse>
```

Parameters: `dateFrom`, `dateTo`, `minBalance`, and `limit`. Returns billed, paid, and owed totals plus reservations ranked by balance. Reservation organization, status, and client fields can be `null`.

```ts
const outstanding = await requiply.reports.outstanding({ minBalance: 1, limit: 25 });
```

## `reports.overdue()`

```ts
reports.overdue(
  params?: OverdueReportParams,
  options?: RequiplyRequestOptions,
): Promise<OverdueReportResponse>
```

Parameters: `limit` and `minDaysOverdue`. Returns an `asOf` timestamp, totals by severity, and entries whose `severity` is `info`, `warning`, or `critical`. Reservation, status, client, and total-cost fields can be `null`.

Each entry also carries `stillOutUnits`, a list of `{ itemId, sku }` for units a confirmed [partial return](https://requiply.com/docs/en/guides/bookings/checklists/returns#partial-returns-units-that-did-not-come-back) left with the client and that have not come back since. It is empty when no return has been confirmed.

```ts
const overdue = await requiply.reports.overdue({ minDaysOverdue: 2, limit: 25 });
```

## `reports.pipeline()`

```ts
reports.pipeline(
  params?: PipelineReportParams,
  options?: RequiplyRequestOptions,
): Promise<PipelineReportResponse>
```

Parameters: `horizonDays` and `groupBy` (`day`, `week`, or `month`). Returns the resolved reporting window, upcoming booking and revenue totals, and time buckets.

```ts
const pipeline = await requiply.reports.pipeline({
  horizonDays: 90,
  groupBy: 'month',
});
```


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
