---
title: "Get canonical wedding statistics"
method: GET
path: "/stats"
tags: ["Statistics"]
---

# Get canonical wedding statistics

`GET /stats`

## Request

- Base URL: `https://api.aisle.wedding/v1`
- URL: `https://api.aisle.wedding/v1/stats`
- Auth: HTTP bearer

Guest totals use Aisle’s headcount model. Room totals use settlement groups and completed, unrefunded accommodation payments. Registry totals use completed, unrefunded registry payments.

## Response `200`

The requested data.

- WeddingStatsResult
  - `data` PublicWeddingStats, required: Guest counts use the canonical headcount model. Event response counts are explicit guest-event replies. Room money uses settlement groups and completed, unrefunded accommodation payments. Registry totals use completed, unrefunded contribution payments and never registry_items.current_amount.
    - `guests` object, required
      - `invited` integer, required
      - `attending` integer, required
      - `declined` integer, required
      - `maybe` integer, required
      - `pending` integer, required
      - `replied` integer, required
      - `response_rate_percent` integer, required
      - `awaiting_reply` integer, required: Guests whose wedding RSVP is pending, null, unknown, or maybe.
    - `events` object, required
      - `total` integer, required
      - `responses` integer, required
      - `attending_responses` integer, required
      - `declined_responses` integer, required
      - `awaiting_responses` integer, required: Stored guest-event response rows whose attending value is null.
    - `rooms` object, required
      - `total` integer, required
      - `occupied` integer, required: Distinct non-null room IDs assigned to guests.
      - `settlement_groups` integer, required
      - `settled_groups` integer, required
      - `priced_groups` integer, required
      - `total_amount` string, required: A decimal currency amount. It is serialized as a string.
      - `received_amount` string, required: A decimal currency amount. It is serialized as a string.
      - `outstanding_amount` string, required: A decimal currency amount. It is serialized as a string.
    - `registry` object, required
      - `items` integer, required: All registry items, including items hidden from guests.
      - `goal_amount` string, required: The sum of goal amounts across all registry items, including hidden items.
      - `received_amount` string, required: Completed, unrefunded registry contributions, including contributions to hidden items and unattributed contributions.
      - `gift_count` integer, required: Completed, unrefunded registry contributions, including contributions to hidden items and unattributed contributions.
    - `content` object, required
      - `recommendations` integer, required: All stored recommendation rows.
      - `faqs` integer, required: All stored FAQ rows.
      - `song_requests` integer, required: All stored song request rows.
      - `guestbook_entries` integer, required: All guestbook entries, including unapproved entries.
      - `approved_guestbook_entries` integer, required: Guestbook entries whose approved value is true.
      - `predictions` integer, required: All predictions, including inactive predictions.
      - `prediction_responses` integer, required: Responses across active and inactive predictions.

## Other responses

- `400`: The request itself could not be read, such as a body that is not a JSON object. A field we refuse is validation_failed instead.
- `401`: The API key is missing, malformed, or no longer valid.
- `402`: The operation requires an active Aisle membership for this wedding.
- `403`: The key is valid but not permitted to do this.
- `404`: No such resource inside the key's wedding.
- `405`: That HTTP method is not supported here. See the Allow header.
- `409`: The request collided with the current state of the resource.
- `415`: A request body must be sent as application/json.
- `422`: The request was well-formed but a field was not acceptable. Every field at fault is named in error.details.
- `429`: Too many requests. Retry after the time given in Retry-After.
- `500`: Something went wrong on our side.

---

[API](https://skmtc.dev/aisle/apis/aisle-api.md) · [All operations](https://skmtc.dev/aisle/apis/aisle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aisle/apis/aisle-api/revisions/689a2f2420cc?raw)
