Workforce Availability
GET /external/v1/workforce/resources
Returns a versioned, paginated workforce-supply resource for each company membership. This is the dedicated Phase 1 contract and requires the availability:read scope. /external/v1/workforce/availability remains a deprecated route alias.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
from | ISO-8601 date/time | No | Window start; defaults to now |
to | ISO-8601 date/time | No | Window end; defaults to 30 days after from and may not exceed 90 days |
limit | integer | No | Page size, default 100 and maximum 200 |
cursor | string | No | Opaque cursor from pagination.next_cursor |
updated_since | ISO-8601 date/time | No | Only resources updated at or after this time |
curl "${SUPRSYNC_API_BASE}/external/v1/workforce/resources?from=2026-10-01T00:00:00Z&to=2026-10-31T00:00:00Z&limit=100" \
-H "x-api-key: api_your_client_id" \
-H "x-api-secret: sec_your_client_secret"
Response
{
"data": [{
"staff_resource_id": "membership-uuid",
"role": { "id": "role-uuid", "name": "Nurse" },
"location": { "id": "branch-uuid", "name": "Central" },
"qualifications": [{ "id": "skill-uuid", "code": "RN", "name": "Registered nurse" }],
"supply_status": "off_duty",
"supply_status_as_of": "2026-10-05T12:00:00.000Z",
"shifts": [],
"unavailable_intervals": [],
"resource_version": 4,
"updated_at": "2026-10-04T12:00:00.000Z"
}],
"pagination": { "limit": 100, "next_cursor": null },
"window": { "from": "2026-10-01T00:00:00.000Z", "to": "2026-10-31T00:00:00.000Z" }
}
qualifications contains verified skill records already stored by SuprSync. SuprSync does not currently store or infer Clinic/Telemedicine service eligibility; RNMD Capacity must apply an approved external rule if it needs that classification. supply_status is one of inactive, unavailable, on_duty, or off_duty. It describes workforce state at supply_status_as_of; it does not mean an appointment is bookable. RNMD Capacity owns bookability.
Use staff_resource_id as the stable resource identifier and retain the greatest resource_version observed. A deleted membership remains reconcilable as a tombstone:
{
"staff_resource_id": "membership-uuid",
"deleted": true,
"resource_version": 5,
"updated_at": "2026-10-05T12:30:00.000Z"
}
GET /external/v1/workforce/resources/{staff_resource_id} returns the current resource or its tombstone. Intervals are half-open: the start is inclusive and the end is exclusive.