Skip to main content

Organisation

Departments, job titles, branches, employment types, pay grades, shifts and holidays. These are workspace configuration rather than personal data, so they share one pair of scopes: org:read and org:write.

List departments​

GET/v1/departments

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
statusactive · inactiveNoOnly records in this state.

Responses​

StatusMeaning
200A page of departments.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a department​

POST/v1/departments

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created department.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a department​

GET/v1/departments/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The department.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such department in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a department​

PATCH/v1/departments/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated department.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such department in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a department​

DELETE/v1/departments/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted department.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such department in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List designations​

GET/v1/designations

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
statusactive · inactiveNoOnly records in this state.

Responses​

StatusMeaning
200A page of designations.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a designation​

POST/v1/designations

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created designation.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a designation​

GET/v1/designations/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The designation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such designation in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a designation​

PATCH/v1/designations/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated designation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such designation in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a designation​

DELETE/v1/designations/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted designation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such designation in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List branches​

GET/v1/branches

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
statusactive · inactiveNoOnly records in this state.

Responses​

StatusMeaning
200A page of branches.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a branch​

POST/v1/branches

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created branch.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a branch​

GET/v1/branches/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The branch.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such branch in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a branch​

PATCH/v1/branches/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated branch.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such branch in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a branch​

DELETE/v1/branches/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted branch.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such branch in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List employment types​

GET/v1/employment_types

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.

Responses​

StatusMeaning
200A page of employment types.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a employment type​

POST/v1/employment_types

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created employment type.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a employment type​

GET/v1/employment_types/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The employment type.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such employment type in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a employment type​

PATCH/v1/employment_types/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated employment type.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such employment type in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a employment type​

DELETE/v1/employment_types/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted employment type.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such employment type in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List pay grades​

GET/v1/pay_grades

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.

Responses​

StatusMeaning
200A page of pay grades.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a pay grade​

POST/v1/pay_grades

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created pay grade.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a pay grade​

GET/v1/pay_grades/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The pay grade.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such pay grade in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a pay grade​

PATCH/v1/pay_grades/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated pay grade.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such pay grade in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a pay grade​

DELETE/v1/pay_grades/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted pay grade.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such pay grade in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List shifts​

GET/v1/shifts

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
statusactive · inactiveNoOnly records in this state.

Responses​

StatusMeaning
200A page of shifts.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a shift​

POST/v1/shifts

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created shift.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a shift​

GET/v1/shifts/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The shift.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such shift in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a shift​

PATCH/v1/shifts/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated shift.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such shift in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a shift​

DELETE/v1/shifts/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted shift.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such shift in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.

List holidays​

GET/v1/holidays

Query parameters​

NameTypeRequiredDescription
limitintegerNoPage size. Values above 100 are clamped.
starting_afterstringNoOpaque cursor from a previous response’s next_cursor.
updated_sincetimestampNoReturn records changed at or after this instant. Tracks the record itself, not its child collections.
yearintegerNoOnly holidays in this calendar year.
branch_idstringNoOnly holidays observed at this branch.

Responses​

StatusMeaning
200A page of holidays.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
429Rate limit exceeded. See the RateLimit-* headers.

Create a holiday​

POST/v1/holidays

Headers​

NameTypeRequiredDescription
Idempotency-KeystringNoA unique value per logical request. Replaying it returns the original response with Idempotent-Replay: true.

Responses​

StatusMeaning
201The created holiday.
400The request body failed validation.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
409A conflicting record exists, or a referenced id does not.
429Rate limit exceeded. See the RateLimit-* headers.

Retrieve a holiday​

GET/v1/holidays/{id}

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The holiday.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such holiday in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Update a holiday​

PATCH/v1/holidays/{id}

Only the fields present in the body are changed.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The updated holiday.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such holiday in this workspace.
429Rate limit exceeded. See the RateLimit-* headers.

Delete a holiday​

DELETE/v1/holidays/{id}

Permanent — these records have no soft-delete state. Refused with 409 while anything still references the record.

Path parameters​

NameTypeRequiredDescription
idstringYesThe identifier returned as id on the object.

Responses​

StatusMeaning
200The deleted holiday.
401The API key is missing, malformed, revoked or expired.
403The key does not carry the required scopes.
404No such holiday in this workspace.
409The record is still referenced by other records.
429Rate limit exceeded. See the RateLimit-* headers.