---
title: "A month's figures for bookings that start in the month on the org's clock: confirmed bookings going ahead, their guests and revenue_cents (what they're booked for; a cancelled booking counts nothing), no-shows and check-ins among them, live holds and cancellations; then by_offering (most revenue first, with a class's seats offered and how full they were) and by_source (where bookings came from). Counted by the database, so they hold at any volume"
method: GET
path: "/reports/{month}"
tags: ["reports"]
---

# A month's figures for bookings that start in the month on the org's clock: confirmed bookings going ahead, their guests and revenue_cents (what they're booked for; a cancelled booking counts nothing), no-shows and check-ins among them, live holds and cancellations; then by_offering (most revenue first, with a class's seats offered and how full they were) and by_source (where bookings came from). Counted by the database, so they hold at any volume

`GET /reports/{month}`

## Request

- Base URL: `https://daybag.io/api/v1`
- URL: `https://daybag.io/api/v1/reports/{month}`
- Auth: HTTP bearer

## Path parameters

- `month` string, required: The month, YYYY-MM, e.g. 2026-10

## Response `200`

Success

- object
  - `month` string, required: The month, YYYY-MM, on the org's clock
  - `from` string, required: The month's first instant, its first midnight in the org's time zone
  - `to` string, required: The next month's first instant: the month is from up to, not including, to
  - `currency` string, required: The org's currency, which the amounts are in (ISO 4217, lower case)
  - `totals` object, required
    - `bookings` integer, required: Confirmed bookings starting in the month whose time is going ahead (not one called off with its guest picking another time)
    - `guests` integer, required: Their seats, people or items: the sum of their quantity
    - `revenue_cents` integer, required: What they're booked for (their total_cents, after any promo code); a cancelled booking counts nothing, in the currency's minor units (cents; whole yen for zero-decimal currencies)
    - `no_shows` integer, required: Of those bookings, the ones marked no-show
    - `checked_in` integer, required: Of those bookings, the ones checked in (a rental's: picked up)
    - `held` integer, required: Holds starting in the month that still keep their place
    - `cancelled` integer, required: Bookings starting in the month that were cancelled
  - `by_offering` object[], required: Each offering with bookings in the month, and each class with times in it, most revenue first
    - `offering_id` string, required
    - `name` string, required
    - `kind` 'class' | 'appointment' | 'rental', required
    - `bookings` integer, required: Its confirmed bookings going ahead in the month
    - `guests` integer, required: Their quantity
    - `revenue_cents` integer, required: What they're booked for, in the currency's minor units (cents; whole yen for zero-decimal currencies)
    - `seats_offered` integer, nullable, required: A class: the seats of its scheduled sessions in the month; null for the other kinds
    - `fill` number, nullable, required: A class: guests over seats_offered, 0.68 for 68% (to 4 places); null for the other kinds
  - `by_source` object[], required: Where the month's bookings came from, most first
    - `source` string, required: Where they were made: widget, dashboard, api, mcp, octo or assistant
    - `bookings` integer, required: Confirmed bookings going ahead

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/daybag/apis/daybooked-io-api.md) · [All operations](https://skmtc.dev/daybag/apis/daybooked-io-api/llms.txt) · [OpenAPI document](https://skmtc.dev/daybag/apis/daybooked-io-api/revisions/1f576dead370?raw)
