All fields except productGroupId are optional. Only provided fields are patched.
Field
Type
Required
Description
productGroupId
string
Yes
The ID of the product group to update
workspaceId
string
No
The ID of the workspace
internalReference
string
No
The internal reference of the product group
maxOccupants
number | null
No
Most people who may live in a unit booked through this product group. A head count, not target occupancy. Must be at least 1 and >= minOccupants when both end up set. Pass null to clear (no limit); omit to leave unchanged.
minOccupants
number | null
No
Fewest people who may live in a unit booked through this product group. A head count, not target occupancy. Must be at least 1. Pass null to clear (no limit); omit to leave unchanged.
academicYear
string
No
The academic year in YYYY/YYYY format (e.g. 2026/2027)
agreementId
string
No
The ID of the associated agreement
allowBookingExpiryTimer
boolean
No
Whether booking expiry timer is allowed
cancelationPolicyId
string
No
The ID of the cancelation policy to associate
contractTemplateExternalId
string | null
No
External ID of the contract template. Pass null to clear; omit to leave unchanged.
defaultExpiryDurationInSeconds
number
No
The default expiry duration in seconds
productSegment
ProductSegment | null
No
Segment classification for this student product group. Pass null to clear. - ProductSegment
All contract date fields are optional on update — provide only the fields you want to change.
The outer bounds (contractEarliestStartDate and contractLatestEndDate) define the absolute window — no
booking can start before contractEarliestStartDate or end after contractLatestEndDate.
The inner bounds (contractLatestStartDate and contractEarliestEndDate) define flexibility within those
outer limits:
A booking can start anywhere between contractEarliestStartDate and contractLatestStartDate
(e.g. a student arriving late).
A booking can end anywhere between contractEarliestEndDate and contractLatestEndDate
(e.g. a student leaving early).
Field
Type
Required
Description
contractEarliestStartDate
string
No
The earliest date a booking may start (outer lower bound)
contractLatestStartDate
string
No
The latest date a booking may start (inner upper bound for start)
contractEarliestEndDate
string
No
The earliest date a booking may end (inner lower bound for end)
contractLatestEndDate
string
No
The latest date a booking may end (outer upper bound)
The publishing window controls when products are visible to bookers. Its lifecycle moves through three
states: SCHEDULED (not yet active), ONGOING (currently active), and FINISHED (window has ended).
Field
Type
Required
Description
startDate
string
No
Date when products start showing. Defaults to today if not provided.
endDate
string
No
Date when products stop showing. Defaults to contractLatestEndDate from the request payload if not provided.