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.