Add an opening hours override
Partner key + restaurant key. A new override for a date period: a public holiday, a holiday or summer hours. Dates are YYYY-MM-DD in Oslo time; endDate is inclusive and cannot be before startDate. isClosed: true closes the whole period; an open override needs both opensAt and closesAt. closesAt before opensAt means open 00:00–closesAt and opensAt–24:00 on each day of the period (e.g. 18:00/02:00 = 00:00–02:00 and 18:00–24:00 on the same day), not a window into the next day. When several overrides cover the same day, the one with the shortest period wins.
Overrides are listed in GET …/hours. At most 200 overrides per restaurant, including past ones: delete old ones with DELETE. Not allowed for an archived restaurant or the demo restaurant.
Authentication
The partner key (lbp_test_… or lbp_live_…), sent as Authorization: Bearer lbp_… and created in LettBestilt Partner under Partner key. It belongs to the whole partner, not to a restaurant, and only works against /api/v1/partner. Server to server only: a request with an Origin header is rejected with 403 FORBIDDEN, and the key must never be in a browser. A TEST key sees and creates only sandboxes; LIVE keys work once LettBestilt Partner is open. A suspended or archived partner, a revoked key and a restaurant key (lbs_…) here give 401 UNAUTHORIZED; an expired key gives 401 KEY_EXPIRED.
The restaurant’s own key (lbs_test_… or lbs_live_…) for calls about one restaurant in the partner API, sent together with the partner key. The key must have full access (scope *, otherwise 403 INSUFFICIENT_SCOPE), belong to a restaurant the partner owns and be in the same environment as the partner key. A restaurant that does not exist, belongs to another partner or does not match the key always gives the same 404 RESTAURANT_NOT_FOUND. Older keys without an environment in the prefix (lbs_<random>) are not accepted here; rotate them in LettBestilt Partner.
Path parameters
The restaurant’s slug. It must match the restaurant key in X-LettBestilt-Restaurant-Key.
Request
Calendar day in Oslo time, YYYY-MM-DD.
Calendar day in Oslo time, YYYY-MM-DD.
Required when isClosed is false.
Required when isClosed is false.
Response
An override of the weekly hours for a date period (a public holiday, a holiday, summer hours). Dates are YYYY-MM-DD in Oslo time; endDate is inclusive and cannot be before startDate. isClosed: true closes the whole period; an open override needs both opensAt and closesAt. closesAt before opensAt means open 00:00–closesAt and opensAt–24:00 on each day of the period (e.g. 18:00/02:00 = 00:00–02:00 and 18:00–24:00 on the same day), not a window into the next day. When several overrides cover the same day, the one with the shortest period wins.

