---
title: "Get bookability + effective capacity over a date range"
method: GET
path: "/api/v1/capacity"
tags: ["Capacity"]
---

# Get bookability + effective capacity over a date range

`GET /api/v1/capacity`

## Request

- Base URL: `https://www.gerezi.com`
- URL: `https://www.gerezi.com/api/v1/capacity`
- Auth: HTTP bearer

Returns one row per (date × service period) in the window. Each row carries true guest bookability from the shared date-gate (`open`, `closed_reason`, `closed_reason_kind` of CLOSURE_PERIOD|SCHEDULE_EXCEPTION|WAITLIST_ONLY|INACTIVE_DAY|NO_SERVICE, `waitlist_only`) — the same gate the guest engine uses, so operator-closed nights (ClosurePeriod OR CLOSED Schedule Exception) report `open:false` instead of falsely showing floor capacity. Waitlist rows (`state:"waitlist"`) additionally carry `waitlist_rule_id`, `waitlist_scope` (restaurant | service_period) and the rule's `closed_from`/`closed_to` window, so the caller sees WHICH rule holds the date and can lift it (DELETE /api/v1/availability-rules/:id) or book past it (POST /bookings `force_closed:true`). Capacity fields (effective_cap, cap_source override>default>floor, confirmed covers, remaining headroom) are populated only on open/waitlist rows and null on closed rows. Range capped at 60 days. Scope: `bookings:read`.

## Query parameters

- `from` string, required
- `to` string
- `service_period_id` string

## Response `200`

Capacity rows

---

[API](https://skmtc.dev/gerezi/apis/gerezi-restaurant-api.md) · [All operations](https://skmtc.dev/gerezi/apis/gerezi-restaurant-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gerezi/apis/gerezi-restaurant-api/revisions/323b530e81cb?raw)
