REST endpoints for capacity in ServFlo: 6 operations with parameters, request and response fields, permissions and curl examples.
Base URL: https://app.servflo.ai/api. Every call needs Authorization: Bearer sfk_… (Authentication); {organizationId} ($ORGANIZATION_ID in the examples) is your business's id.
GET /organizations/{organizationId}/capacity/settings
The planning windows, whether online booking honours capacity, the booking threshold (business default and per window), the amber point and planned non-job minutes per technician day. The defaults until saved. Read-only.
Changes the fields sent. With enforceOnline: true the public booking form stops offering a window once booking it would pass the threshold ("stop online booking at 80%") and shows filling windows as limited: customer-visible at once. Units can override the threshold (PATCH /business-units/{id}). Windows must be in order and not overlap.
Permission
settings.manage (Owner, Admin)
Risk
write, OAuth scope servflo.write. Write: creates or changes records inside the business; nothing leaves it.
GET /organizations/{organizationId}/capacity/board
Per day and planning window from start (default this week's Monday) for days days (default 7, at most 31): technician minutes available (working days and hours, time off, planned non-job time; real minutes across daylight saving) against booked visits and pending NEW requests, with utilisation, open and overbooked minutes and a level (green, amber from the settings' amber point, red past 100%). One row for the whole business and one per active unit (and none: work with no unit); businessUnitId keeps that unit and breaks it down by service type; serviceTypeId narrows demand to one service type. Read-only.
The drill-down of a board cell: the technicians whose time makes the supply (minutes each), and the visits and NEW requests that make the demand, for date and the window starting at windowStart (or the whole day), for one unit (businessUnitId), work with no unit (noUnit), and/or one service type. Read-only.
GET /organizations/{organizationId}/capacity/forecast
The next weeks weeks (1–4, default 4, from this week's Monday), per week: technician minutes available, booked and pending work, and PREDICTED work from Customer 360's service-due predictions (not booked: a projection, labelled as such), with utilisation and projected utilisation. One series for the business and one per active unit, or just businessUnitId. Read-only.
GET /organizations/{organizationId}/capacity/availability
For the CSR booking screen: the arrival windows a service can be booked in from from (default today) for days days (default 7), from every active technician who works for the service's unit (or businessUnitId), with no lead time or daily cap, each flagged limited (filling), overThreshold (online booking would hide it; staff may still book it) and its projected utilisation. Then create the job (POST /jobs) or request at the chosen time. Read-only.