# Get the items report (/api/reports/get-items-report)

`GET https://api.comecero.com/api/v1/reports/items`

Totals your sales per product for a date range: subtotal, tax, total, number of orders and units sold, one row per `item_id`. The list is offset-based, up to 100 rows a page. With no dates, the report covers yesterday in the report time zone. A `date_end` later than today is cut back to the end of today, and a `date_start` later than today is refused. There is no maximum range. Amounts are in your primary reporting currency, or your secondary one when you send it in `currency`. Needs a secret or trusted token with permission to read reports.

## Parameters

- `date_start` (query): Only items on or after this date. Send ISO 8601 (`2026-11-01T00:00:00Z` or `2026-11-01T00:00:00-05:00`) or a shorthand: `2026` means the start of 2026, `2026-11` the start of November, `2026-11-01` the start of that day. A date with no offset is read in `timezone`, or in the account's time zone when you send none. It must not be after `date_end` (`400`).
- `date_end` (query): Only items on or before this date. Same formats as `date_start`, but a shorthand means the end of the period: `2026-11` is the last instant of November, `2026-11-30` the last instant of that day. A date with no offset is read in `timezone`, or in the account's time zone when you send none.
- `timezone` (query): An IANA time zone name, such as `America/New_York` or `UTC`. It sets how `date_start` and `date_end` are read and the time zone of every date in the response. The default is the account's time zone (Settings, Technical), or UTC when it has none. A name that is not known is a `400`.
- `limit` (query): How many items to return on one page, from 1 to 100. The default is 100. A value outside 1 to 100, or one that is not a whole number, is a `400`.
- `offset` (query): For offset-based lists, how many items to skip before the page starts. Use `next_page_offset` or `previous_page_offset` from the page you have. A value that is not a whole number is a `400`.
- `sort_by` (query): The field to sort the rows by. Any other value sorts by `subtotal`.
- `desc` (query): Sort in descending order (newest, largest or last first) when `true`. The default is `false`. A value other than `true` or `false` is a `400`.
- `formatted` (query): When `true`, the object also has a `formatted` child with amounts and dates as display text in the shopper's language and currency (for example `$19.99` or `November 7, 2026`). The default is `false`. See [Localized formatting](https://docs.comecero.com/docs/basic-concepts/localized-formatting).
- `type` (query): Which transactions to count: `payments`, `refunds` (as negative amounts) or `combined` (payments net of refunds on the items in this page).
- `currency` (query): One of your two reporting currencies (Settings, General). Any other value is refused. Leave it out for the primary reporting currency.

Responses: 200, 400, 401, 403, 500.

Full schemas: operation `get_items_report` in /openapi.json.