Organization
Org units, locations and departments, plus read-only roles and users for integrations.
The organization structure is part of the always-on platform core. Everything supports externalId, so an HR system or POS integration can sync its store, region and department IDs with PUT …/external/{externalId}.
With a reach narrower than Everyone, organization.manage only lets someone edit and archive their own locations' profiles. See Organization & locations.
Webhook events: org_unit.created, org_unit.updated, org_unit.archived, location.created, location.updated, location.archived, department.created, department.updated, department.archived.
All paths are relative to /api/v1. Key is the scope an integration key needs, People the permission a signed-in person or personal key needs, and Feature the feature switch the endpoint belongs to. See how to read this reference.
- GET
/org-unitsList org units (regions, districts…);
parentIdfiltersKeyorganization:readPeopleanyone - POST
/org-unitsCreate an org unit
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/org-units/{id}Get an org unit
Keyorganization:readPeopleanyone - PATCH
/org-units/{id}Update an org unit (e.g. move it under another parent)
Keyorganization:writePeopleorganization.manage(Everyone) - DELETE
/org-units/{id}Archive an org unit (only once it contains no active units or locations)
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/org-units/external/{externalId}Get an org unit by external ID
Keyorganization:readPeopleanyone - PUT
/org-units/external/{externalId}Create or replace an org unit by external ID
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/locationsList locations;
orgUnitId,statusandincludeArchivedfilterKeyorganization:readPeopleanyone - POST
/locationsCreate a location
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/locations/{id}Get a location
Keyorganization:readPeopleanyone - PATCH
/locations/{id}Update a location's profile
Keyorganization:writePeopleorganization.manage - DELETE
/locations/{id}Archive (close) a location; history is kept
Keyorganization:writePeopleorganization.manage - GET
/locations/external/{externalId}Get a location by external ID
Keyorganization:readPeopleanyone - PUT
/locations/external/{externalId}Create or replace a location by external ID
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/departmentsList departments
Keyorganization:readPeopleanyone - POST
/departmentsCreate a department
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/departments/{id}Get a department
Keyorganization:readPeopleanyone - PATCH
/departments/{id}Update a department
Keyorganization:writePeopleorganization.manage(Everyone) - DELETE
/departments/{id}Archive a department
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/departments/external/{externalId}Get a department by external ID
Keyorganization:readPeopleanyone - PUT
/departments/external/{externalId}Create or replace a department by external ID
Keyorganization:writePeopleorganization.manage(Everyone) - GET
/rolesList roles and their permissions
Keyorganization:readPeopleusers.read - GET
/roles/{id}Get a role
Keyorganization:readPeopleusers.read - GET
/usersList user accounts with their role and assignments
Keyorganization:readPeopleusers.read - GET
/users/{id}Get a user
Keyorganization:readPeopleusers.read