ReferenceAPI referenceObjects

Objects

List member fields

GET /v1/orgs/{orgId}/objects/member_fields

beta since 2026-09-28

Group: Lists

Custom access scope: reports:read

Member fields on the projects this caller can read. Filter, choose fields, expand linked records, page with next_cursor, or sync changes with delta. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
deltaquerystringnostart, or the next_delta from the last call. Changes appear about 30 seconds after they are made.
expandquerystringnoComma-separated: project, worker.
fieldsquerystringnoComma-separated: id, project_id, worker_id, joined_at, verified_at, updated_at, apprentice, trainee, gender, date_of_birth, post_code, year_of_commencement, atsi, language_group, beakon_id, other_fields. id is always included.
filter[project_id][eq]querystring (uuid)noComma-separated, up to 100.
filter[worker_id][eq]querystring (uuid)noComma-separated, up to 100.
limitqueryintegernoRows per page, 1 to 5000.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].apprenticestring, nullableno
200.data[].atsistring, nullablenoNeeds personal:diversity.
200.data[].beakon_idstring, nullableno
200.data[].date_of_birthstring (date), nullablenoNeeds personal:diversity.
200.data[].genderstring, nullablenoNeeds personal:diversity.
200.data[].idstring (uuid)yes
200.data[].joined_atstring (date-time)no
200.data[].language_groupstring, nullablenoNeeds personal:diversity.
200.data[].other_fieldsobject, nullablenoNeeds personal:diversity.
200.data[].post_codestring, nullablenoNeeds personal:contact.
200.data[].projectobject, nullablenoPresent when expanded.
200.data[].project.award_datestring (date), nullableno
200.data[].project.clientstring, nullableno
200.data[].project.completion_datestring (date), nullableno
200.data[].project.core_idstringno
200.data[].project.created_atstring (date-time)no
200.data[].project.idstring (uuid)yes
200.data[].project.namestringno
200.data[].project.statusstringno
200.data[].project.timezonestringno
200.data[].project.updated_atstring (date-time)no
200.data[].project_idstring (uuid)no
200.data[].traineestring, nullableno
200.data[].updated_atstring (date-time)no
200.data[].verified_atstring (date-time), nullableno
200.data[].workerobject, nullablenoPresent when expanded.
200.data[].worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data[].worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data[].worker.created_atstring (date-time)no
200.data[].worker.emailstringnoNeeds personal:contact.
200.data[].worker.home_org_idstring (uuid)no
200.data[].worker.idstring (uuid)yes
200.data[].worker.namestringno
200.data[].worker.phonestring, nullablenoNeeds personal:contact.
200.data[].worker.statusstringno
200.data[].worker.supplier_namestring, nullableno
200.data[].worker.supplier_org_idstring (uuid), nullableno
200.data[].worker.updated_atstring (date-time)no
200.data[].worker.worker_typestring, nullableno
200.data[].worker_idstring (uuid)no
200.data[].year_of_commencementstring, nullableno
200.deletedarraynoRecords deleted since the last call. Only on a delta call.
200.deleted[].deleted_atstring (date-time)yes
200.deleted[].idstring (uuid)yes
200.has_morebooleanyes
200.next_cursorstringnoPass as cursor for the next page. Absent on the last page.
200.next_deltastringnoPass as delta on the next call. Only on a delta call.

What it is

One person’s place on a project’s roster — the record that says this person is on this job. It is presence, not permission: it decides whose name is offered in pickers and who can open the project at all, while what they may do there comes from their RBAC role.

Get one member fields

GET /v1/orgs/{orgId}/objects/member_fields/{id}

beta since 2026-09-28

Group: Lists

Custom access scope: reports:read

One member fields by id. A record this caller cannot see is not found. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
expandquerystringnoComma-separated: project, worker.
fieldsquerystringnoComma-separated: id, project_id, worker_id, joined_at, verified_at, updated_at, apprentice, trainee, gender, date_of_birth, post_code, year_of_commencement, atsi, language_group, beakon_id, other_fields. id is always included.

Response

FieldTypeRequiredNotes
200.dataobjectyes
200.data.apprenticestring, nullableno
200.data.atsistring, nullablenoNeeds personal:diversity.
200.data.beakon_idstring, nullableno
200.data.date_of_birthstring (date), nullablenoNeeds personal:diversity.
200.data.genderstring, nullablenoNeeds personal:diversity.
200.data.idstring (uuid)yes
200.data.joined_atstring (date-time)no
200.data.language_groupstring, nullablenoNeeds personal:diversity.
200.data.other_fieldsobject, nullablenoNeeds personal:diversity.
200.data.post_codestring, nullablenoNeeds personal:contact.
200.data.projectobject, nullablenoPresent when expanded.
200.data.project.award_datestring (date), nullableno
200.data.project.clientstring, nullableno
200.data.project.completion_datestring (date), nullableno
200.data.project.core_idstringno
200.data.project.created_atstring (date-time)no
200.data.project.idstring (uuid)yes
200.data.project.namestringno
200.data.project.statusstringno
200.data.project.timezonestringno
200.data.project.updated_atstring (date-time)no
200.data.project_idstring (uuid)no
200.data.traineestring, nullableno
200.data.updated_atstring (date-time)no
200.data.verified_atstring (date-time), nullableno
200.data.workerobject, nullablenoPresent when expanded.
200.data.worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data.worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data.worker.created_atstring (date-time)no
200.data.worker.emailstringnoNeeds personal:contact.
200.data.worker.home_org_idstring (uuid)no
200.data.worker.idstring (uuid)yes
200.data.worker.namestringno
200.data.worker.phonestring, nullablenoNeeds personal:contact.
200.data.worker.statusstringno
200.data.worker.supplier_namestring, nullableno
200.data.worker.supplier_org_idstring (uuid), nullableno
200.data.worker.updated_atstring (date-time)no
200.data.worker.worker_typestring, nullableno
200.data.worker_idstring (uuid)no
200.data.year_of_commencementstring, nullableno

What it is

One person’s place on a project’s roster — the record that says this person is on this job. It is presence, not permission: it decides whose name is offered in pickers and who can open the project at all, while what they may do there comes from their RBAC role.

List the changes to one member fields

GET /v1/orgs/{orgId}/objects/member_fields/{id}/history

beta since 2026-09-28

Group: Lists

Custom access scope: reports:read

Changes made to one member fields through bulk edit and undo, newest first. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
limitqueryintegernoRows per page, 1 to 500.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].actionstringyes
200.data[].actorobject, nullableno
200.data[].actor.kindstringyes
200.data[].actor.user_idstring (uuid), nullableno
200.data[].actor.viastringyes
200.data[].afterobject, nullableno
200.data[].after.idstring (uuid), nullableno
200.data[].after.joined_atstring (date-time), nullableno
200.data[].after.project_idstring (uuid), nullableno
200.data[].after.updated_atstring (date-time), nullableno
200.data[].after.verified_atstring (date-time), nullableno
200.data[].after.worker_idstring (uuid), nullableno
200.data[].beforeobject, nullableno
200.data[].before.idstring (uuid), nullableno
200.data[].before.joined_atstring (date-time), nullableno
200.data[].before.project_idstring (uuid), nullableno
200.data[].before.updated_atstring (date-time), nullableno
200.data[].before.verified_atstring (date-time), nullableno
200.data[].before.worker_idstring (uuid), nullableno
200.data[].changedarrayyes
200.data[].idstringyes
200.data[].occurred_atstring (date-time)yes
200.has_morebooleanyes
200.next_cursorstringno

What it is

One person’s place on a project’s roster — the record that says this person is on this job. It is presence, not permission: it decides whose name is offered in pickers and who can open the project at all, while what they may do there comes from their RBAC role.

List projects

GET /v1/orgs/{orgId}/objects/projects

beta since 2026-09-28

Group: Lists

Custom access scope: projects:read

The projects this caller can read. Filter, choose fields, page with next_cursor, or sync changes with delta.

Parameters

NameInTypeRequiredDescription
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
deltaquerystringnostart, or the next_delta from the last call. Changes appear about 30 seconds after they are made.
fieldsquerystringnoComma-separated: id, name, status, client, timezone, award_date, completion_date, core_id, created_at, updated_at. id is always included.
filter[id][eq]querystring (uuid)noComma-separated, up to 100.
filter[status][eq]querystringnoComma-separated, up to 100.
limitqueryintegernoRows per page, 1 to 5000.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].award_datestring (date), nullableno
200.data[].clientstring, nullableno
200.data[].completion_datestring (date), nullableno
200.data[].core_idstringno
200.data[].created_atstring (date-time)no
200.data[].idstring (uuid)yes
200.data[].namestringno
200.data[].statusstringno
200.data[].timezonestringno
200.data[].updated_atstring (date-time)no
200.deletedarraynoRecords deleted since the last call. Only on a delta call.
200.deleted[].deleted_atstring (date-time)yes
200.deleted[].idstring (uuid)yes
200.has_morebooleanyes
200.next_cursorstringnoPass as cursor for the next page. Absent on the last page.
200.next_deltastringnoPass as delta on the next call. Only on a delta call.

What it is

A job an organisation is running — the site everything on the platform is scoped to. Prestarts, diaries, dockets, photos, plant and claims all belong to exactly one project.

Get one project

GET /v1/orgs/{orgId}/objects/projects/{id}

beta since 2026-09-28

Group: Lists

Custom access scope: projects:read

One project by id. A record this caller cannot see is not found.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
fieldsquerystringnoComma-separated: id, name, status, client, timezone, award_date, completion_date, core_id, created_at, updated_at. id is always included.

Response

FieldTypeRequiredNotes
200.dataobjectyes
200.data.award_datestring (date), nullableno
200.data.clientstring, nullableno
200.data.completion_datestring (date), nullableno
200.data.core_idstringno
200.data.created_atstring (date-time)no
200.data.idstring (uuid)yes
200.data.namestringno
200.data.statusstringno
200.data.timezonestringno
200.data.updated_atstring (date-time)no

What it is

A job an organisation is running — the site everything on the platform is scoped to. Prestarts, diaries, dockets, photos, plant and claims all belong to exactly one project.

List the changes to one project

GET /v1/orgs/{orgId}/objects/projects/{id}/history

beta since 2026-09-28

Group: Lists

Custom access scope: projects:read

Changes made to one project through bulk edit and undo, newest first.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
limitqueryintegernoRows per page, 1 to 500.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].actionstringyes
200.data[].actorobject, nullableno
200.data[].actor.kindstringyes
200.data[].actor.user_idstring (uuid), nullableno
200.data[].actor.viastringyes
200.data[].afterobject, nullableno
200.data[].after.award_datestring (date), nullableno
200.data[].after.clientstring, nullableno
200.data[].after.completion_datestring (date), nullableno
200.data[].after.created_atstring (date-time), nullableno
200.data[].after.idstring (uuid), nullableno
200.data[].after.namestring, nullableno
200.data[].after.statusstring, nullableno
200.data[].after.updated_atstring (date-time), nullableno
200.data[].beforeobject, nullableno
200.data[].before.award_datestring (date), nullableno
200.data[].before.clientstring, nullableno
200.data[].before.completion_datestring (date), nullableno
200.data[].before.created_atstring (date-time), nullableno
200.data[].before.idstring (uuid), nullableno
200.data[].before.namestring, nullableno
200.data[].before.statusstring, nullableno
200.data[].before.updated_atstring (date-time), nullableno
200.data[].changedarrayyes
200.data[].idstringyes
200.data[].occurred_atstring (date-time)yes
200.has_morebooleanyes
200.next_cursorstringno

What it is

A job an organisation is running — the site everything on the platform is scoped to. Prestarts, diaries, dockets, photos, plant and claims all belong to exactly one project.

List sign-ons

GET /v1/orgs/{orgId}/objects/sign_ons

beta since 2026-09-28

Group: Lists

Custom access scope: signons:read

Sign-ons on the projects this caller can read. Filter, choose fields, expand linked records, page with next_cursor, or sync changes with delta. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
deltaquerystringnostart, or the next_delta from the last call. Changes appear about 30 seconds after they are made.
expandquerystringnoComma-separated: member_fields, member_fields.project, member_fields.worker, project, supervisor, worker.
fieldsquerystringnoComma-separated: id, project_id, worker_id, prestart_id, signed_at, shift_date, shift_type, supervisor_id, location_id, role_key, role_name, core_id, created_at, updated_at. id is always included.
filter[project_id][eq]querystring (uuid)noComma-separated, up to 100.
filter[shift_date][eq]querystring (date)noComma-separated, up to 100.
filter[shift_date][gt]querystring (date)noGreater than.
filter[shift_date][gte]querystring (date)noGreater than or equal to.
filter[shift_date][lt]querystring (date)noLess than.
filter[shift_date][lte]querystring (date)noLess than or equal to.
filter[signed_at][gt]querystring (date-time)noGreater than.
filter[signed_at][gte]querystring (date-time)noGreater than or equal to.
filter[signed_at][lt]querystring (date-time)noLess than.
filter[signed_at][lte]querystring (date-time)noLess than or equal to.
filter[worker_id][eq]querystring (uuid)noComma-separated, up to 100.
limitqueryintegernoRows per page, 1 to 5000.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].core_idstringnoThe Core sign-on id for records moved from Core, else the Lacroo id.
200.data[].created_atstring (date-time)no
200.data[].idstring (uuid)yes
200.data[].location_idstring (uuid), nullableno
200.data[].member_fieldsobject, nullablenoPresent when expanded.
200.data[].member_fields.apprenticestring, nullableno
200.data[].member_fields.atsistring, nullablenoNeeds personal:diversity.
200.data[].member_fields.beakon_idstring, nullableno
200.data[].member_fields.date_of_birthstring (date), nullablenoNeeds personal:diversity.
200.data[].member_fields.genderstring, nullablenoNeeds personal:diversity.
200.data[].member_fields.idstring (uuid)yes
200.data[].member_fields.joined_atstring (date-time)no
200.data[].member_fields.language_groupstring, nullablenoNeeds personal:diversity.
200.data[].member_fields.other_fieldsobject, nullablenoNeeds personal:diversity.
200.data[].member_fields.post_codestring, nullablenoNeeds personal:contact.
200.data[].member_fields.projectobject, nullablenoPresent when expanded.
200.data[].member_fields.project.award_datestring (date), nullableno
200.data[].member_fields.project.clientstring, nullableno
200.data[].member_fields.project.completion_datestring (date), nullableno
200.data[].member_fields.project.core_idstringno
200.data[].member_fields.project.created_atstring (date-time)no
200.data[].member_fields.project.idstring (uuid)yes
200.data[].member_fields.project.namestringno
200.data[].member_fields.project.statusstringno
200.data[].member_fields.project.timezonestringno
200.data[].member_fields.project.updated_atstring (date-time)no
200.data[].member_fields.project_idstring (uuid)no
200.data[].member_fields.traineestring, nullableno
200.data[].member_fields.updated_atstring (date-time)no
200.data[].member_fields.verified_atstring (date-time), nullableno
200.data[].member_fields.workerobject, nullablenoPresent when expanded.
200.data[].member_fields.worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data[].member_fields.worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data[].member_fields.worker.created_atstring (date-time)no
200.data[].member_fields.worker.emailstringnoNeeds personal:contact.
200.data[].member_fields.worker.home_org_idstring (uuid)no
200.data[].member_fields.worker.idstring (uuid)yes
200.data[].member_fields.worker.namestringno
200.data[].member_fields.worker.phonestring, nullablenoNeeds personal:contact.
200.data[].member_fields.worker.statusstringno
200.data[].member_fields.worker.supplier_namestring, nullableno
200.data[].member_fields.worker.supplier_org_idstring (uuid), nullableno
200.data[].member_fields.worker.updated_atstring (date-time)no
200.data[].member_fields.worker.worker_typestring, nullableno
200.data[].member_fields.worker_idstring (uuid)no
200.data[].member_fields.year_of_commencementstring, nullableno
200.data[].prestart_idstring (uuid), nullableno
200.data[].projectobject, nullablenoPresent when expanded.
200.data[].project.award_datestring (date), nullableno
200.data[].project.clientstring, nullableno
200.data[].project.completion_datestring (date), nullableno
200.data[].project.core_idstringno
200.data[].project.created_atstring (date-time)no
200.data[].project.idstring (uuid)yes
200.data[].project.namestringno
200.data[].project.statusstringno
200.data[].project.timezonestringno
200.data[].project.updated_atstring (date-time)no
200.data[].project_idstring (uuid)no
200.data[].role_keystring, nullableno
200.data[].role_namestring, nullableno
200.data[].shift_datestring (date)noThe shift day on site, in the project’s time zone.
200.data[].shift_typestring, nullableno
200.data[].signed_atstring (date-time)no
200.data[].supervisorobject, nullablenoPresent when expanded.
200.data[].supervisor.beakon_codestring, nullablenoBeakon’s record ID.
200.data[].supervisor.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data[].supervisor.created_atstring (date-time)no
200.data[].supervisor.emailstringnoNeeds personal:contact.
200.data[].supervisor.home_org_idstring (uuid)no
200.data[].supervisor.idstring (uuid)yes
200.data[].supervisor.namestringno
200.data[].supervisor.phonestring, nullablenoNeeds personal:contact.
200.data[].supervisor.statusstringno
200.data[].supervisor.supplier_namestring, nullableno
200.data[].supervisor.supplier_org_idstring (uuid), nullableno
200.data[].supervisor.updated_atstring (date-time)no
200.data[].supervisor.worker_typestring, nullableno
200.data[].supervisor_idstring (uuid), nullableno
200.data[].updated_atstring (date-time)no
200.data[].workerobject, nullablenoPresent when expanded.
200.data[].worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data[].worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data[].worker.created_atstring (date-time)no
200.data[].worker.emailstringnoNeeds personal:contact.
200.data[].worker.home_org_idstring (uuid)no
200.data[].worker.idstring (uuid)yes
200.data[].worker.namestringno
200.data[].worker.phonestring, nullablenoNeeds personal:contact.
200.data[].worker.statusstringno
200.data[].worker.supplier_namestring, nullableno
200.data[].worker.supplier_org_idstring (uuid), nullableno
200.data[].worker.updated_atstring (date-time)no
200.data[].worker.worker_typestring, nullableno
200.data[].worker_idstring (uuid)no
200.deletedarraynoRecords deleted since the last call. Only on a delta call.
200.deleted[].deleted_atstring (date-time)yes
200.deleted[].idstring (uuid)yes
200.has_morebooleanyes
200.next_cursorstringnoPass as cursor for the next page. Absent on the last page.
200.next_deltastringnoPass as delta on the next call. Only on a delta call.

What it is

One person’s attendance on a project for a shift — the record that says this worker was on site, who supervised them, where they signed on and for which shift-day. It is the project’s single attendance primitive and the trigger that mints the day’s billable docket.

Get one sign-on

GET /v1/orgs/{orgId}/objects/sign_ons/{id}

beta since 2026-09-28

Group: Lists

Custom access scope: signons:read

One sign-on by id. A record this caller cannot see is not found. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
expandquerystringnoComma-separated: member_fields, member_fields.project, member_fields.worker, project, supervisor, worker.
fieldsquerystringnoComma-separated: id, project_id, worker_id, prestart_id, signed_at, shift_date, shift_type, supervisor_id, location_id, role_key, role_name, core_id, created_at, updated_at. id is always included.

Response

FieldTypeRequiredNotes
200.dataobjectyes
200.data.core_idstringnoThe Core sign-on id for records moved from Core, else the Lacroo id.
200.data.created_atstring (date-time)no
200.data.idstring (uuid)yes
200.data.location_idstring (uuid), nullableno
200.data.member_fieldsobject, nullablenoPresent when expanded.
200.data.member_fields.apprenticestring, nullableno
200.data.member_fields.atsistring, nullablenoNeeds personal:diversity.
200.data.member_fields.beakon_idstring, nullableno
200.data.member_fields.date_of_birthstring (date), nullablenoNeeds personal:diversity.
200.data.member_fields.genderstring, nullablenoNeeds personal:diversity.
200.data.member_fields.idstring (uuid)yes
200.data.member_fields.joined_atstring (date-time)no
200.data.member_fields.language_groupstring, nullablenoNeeds personal:diversity.
200.data.member_fields.other_fieldsobject, nullablenoNeeds personal:diversity.
200.data.member_fields.post_codestring, nullablenoNeeds personal:contact.
200.data.member_fields.projectobject, nullablenoPresent when expanded.
200.data.member_fields.project.award_datestring (date), nullableno
200.data.member_fields.project.clientstring, nullableno
200.data.member_fields.project.completion_datestring (date), nullableno
200.data.member_fields.project.core_idstringno
200.data.member_fields.project.created_atstring (date-time)no
200.data.member_fields.project.idstring (uuid)yes
200.data.member_fields.project.namestringno
200.data.member_fields.project.statusstringno
200.data.member_fields.project.timezonestringno
200.data.member_fields.project.updated_atstring (date-time)no
200.data.member_fields.project_idstring (uuid)no
200.data.member_fields.traineestring, nullableno
200.data.member_fields.updated_atstring (date-time)no
200.data.member_fields.verified_atstring (date-time), nullableno
200.data.member_fields.workerobject, nullablenoPresent when expanded.
200.data.member_fields.worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data.member_fields.worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data.member_fields.worker.created_atstring (date-time)no
200.data.member_fields.worker.emailstringnoNeeds personal:contact.
200.data.member_fields.worker.home_org_idstring (uuid)no
200.data.member_fields.worker.idstring (uuid)yes
200.data.member_fields.worker.namestringno
200.data.member_fields.worker.phonestring, nullablenoNeeds personal:contact.
200.data.member_fields.worker.statusstringno
200.data.member_fields.worker.supplier_namestring, nullableno
200.data.member_fields.worker.supplier_org_idstring (uuid), nullableno
200.data.member_fields.worker.updated_atstring (date-time)no
200.data.member_fields.worker.worker_typestring, nullableno
200.data.member_fields.worker_idstring (uuid)no
200.data.member_fields.year_of_commencementstring, nullableno
200.data.prestart_idstring (uuid), nullableno
200.data.projectobject, nullablenoPresent when expanded.
200.data.project.award_datestring (date), nullableno
200.data.project.clientstring, nullableno
200.data.project.completion_datestring (date), nullableno
200.data.project.core_idstringno
200.data.project.created_atstring (date-time)no
200.data.project.idstring (uuid)yes
200.data.project.namestringno
200.data.project.statusstringno
200.data.project.timezonestringno
200.data.project.updated_atstring (date-time)no
200.data.project_idstring (uuid)no
200.data.role_keystring, nullableno
200.data.role_namestring, nullableno
200.data.shift_datestring (date)noThe shift day on site, in the project’s time zone.
200.data.shift_typestring, nullableno
200.data.signed_atstring (date-time)no
200.data.supervisorobject, nullablenoPresent when expanded.
200.data.supervisor.beakon_codestring, nullablenoBeakon’s record ID.
200.data.supervisor.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data.supervisor.created_atstring (date-time)no
200.data.supervisor.emailstringnoNeeds personal:contact.
200.data.supervisor.home_org_idstring (uuid)no
200.data.supervisor.idstring (uuid)yes
200.data.supervisor.namestringno
200.data.supervisor.phonestring, nullablenoNeeds personal:contact.
200.data.supervisor.statusstringno
200.data.supervisor.supplier_namestring, nullableno
200.data.supervisor.supplier_org_idstring (uuid), nullableno
200.data.supervisor.updated_atstring (date-time)no
200.data.supervisor.worker_typestring, nullableno
200.data.supervisor_idstring (uuid), nullableno
200.data.updated_atstring (date-time)no
200.data.workerobject, nullablenoPresent when expanded.
200.data.worker.beakon_codestring, nullablenoBeakon’s record ID.
200.data.worker.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data.worker.created_atstring (date-time)no
200.data.worker.emailstringnoNeeds personal:contact.
200.data.worker.home_org_idstring (uuid)no
200.data.worker.idstring (uuid)yes
200.data.worker.namestringno
200.data.worker.phonestring, nullablenoNeeds personal:contact.
200.data.worker.statusstringno
200.data.worker.supplier_namestring, nullableno
200.data.worker.supplier_org_idstring (uuid), nullableno
200.data.worker.updated_atstring (date-time)no
200.data.worker.worker_typestring, nullableno
200.data.worker_idstring (uuid)no

What it is

One person’s attendance on a project for a shift — the record that says this worker was on site, who supervised them, where they signed on and for which shift-day. It is the project’s single attendance primitive and the trigger that mints the day’s billable docket.

List the changes to one sign-on

GET /v1/orgs/{orgId}/objects/sign_ons/{id}/history

beta since 2026-09-28

Group: Lists

Custom access scope: signons:read

Changes made to one sign-on through bulk edit and undo, newest first. Needs the prestarts:read scope as well.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
limitqueryintegernoRows per page, 1 to 500.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].actionstringyes
200.data[].actorobject, nullableno
200.data[].actor.kindstringyes
200.data[].actor.user_idstring (uuid), nullableno
200.data[].actor.viastringyes
200.data[].afterobject, nullableno
200.data[].after.created_atstring (date-time), nullableno
200.data[].after.idstring (uuid), nullableno
200.data[].after.location_idstring (uuid), nullableno
200.data[].after.prestart_idstring (uuid), nullableno
200.data[].after.project_idstring (uuid), nullableno
200.data[].after.role_keystring, nullableno
200.data[].after.role_namestring, nullableno
200.data[].after.shift_typestring, nullableno
200.data[].after.signed_atstring (date-time), nullableno
200.data[].after.updated_atstring (date-time), nullableno
200.data[].after.worker_idstring (uuid), nullableno
200.data[].beforeobject, nullableno
200.data[].before.created_atstring (date-time), nullableno
200.data[].before.idstring (uuid), nullableno
200.data[].before.location_idstring (uuid), nullableno
200.data[].before.prestart_idstring (uuid), nullableno
200.data[].before.project_idstring (uuid), nullableno
200.data[].before.role_keystring, nullableno
200.data[].before.role_namestring, nullableno
200.data[].before.shift_typestring, nullableno
200.data[].before.signed_atstring (date-time), nullableno
200.data[].before.updated_atstring (date-time), nullableno
200.data[].before.worker_idstring (uuid), nullableno
200.data[].changedarrayyes
200.data[].idstringyes
200.data[].occurred_atstring (date-time)yes
200.has_morebooleanyes
200.next_cursorstringno

What it is

One person’s attendance on a project for a shift — the record that says this worker was on site, who supervised them, where they signed on and for which shift-day. It is the project’s single attendance primitive and the trigger that mints the day’s billable docket.

List workers

GET /v1/orgs/{orgId}/objects/workers

beta since 2026-09-28

Group: Lists

Custom access scope: fieldusers:read

Workers linked to the projects this caller can read, and the org’s own workers for callers who see the whole org. Filter, choose fields, page with next_cursor, or sync changes with delta.

Parameters

NameInTypeRequiredDescription
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
deltaquerystringnostart, or the next_delta from the last call. Changes appear about 30 seconds after they are made.
fieldsquerystringnoComma-separated: id, name, email, phone, home_org_id, supplier_org_id, supplier_name, worker_type, status, beakon_id, beakon_code, created_at, updated_at. id is always included.
filter[id][eq]querystring (uuid)noComma-separated, up to 100.
limitqueryintegernoRows per page, 1 to 5000.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].beakon_codestring, nullablenoBeakon’s record ID.
200.data[].beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data[].created_atstring (date-time)no
200.data[].emailstringnoNeeds personal:contact.
200.data[].home_org_idstring (uuid)no
200.data[].idstring (uuid)yes
200.data[].namestringno
200.data[].phonestring, nullablenoNeeds personal:contact.
200.data[].statusstringno
200.data[].supplier_namestring, nullableno
200.data[].supplier_org_idstring (uuid), nullableno
200.data[].updated_atstring (date-time)no
200.data[].worker_typestring, nullableno
200.deletedarraynoRecords deleted since the last call. Only on a delta call.
200.deleted[].deleted_atstring (date-time)yes
200.deleted[].idstring (uuid)yes
200.has_morebooleanyes
200.next_cursorstringnoPass as cursor for the next page. Absent on the last page.
200.next_deltastringnoPass as delta on the next call. Only on a delta call.

What it is

One person who can sign in — an office user, a supervisor, or a worker in the field. Every person belongs to exactly one organisation; a supplier’s worker is a user inside the supplier org, not inside the head contractor’s.

Get one worker

GET /v1/orgs/{orgId}/objects/workers/{id}

beta since 2026-09-28

Group: Lists

Custom access scope: fieldusers:read

One worker by id. A record this caller cannot see is not found.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
fieldsquerystringnoComma-separated: id, name, email, phone, home_org_id, supplier_org_id, supplier_name, worker_type, status, beakon_id, beakon_code, created_at, updated_at. id is always included.

Response

FieldTypeRequiredNotes
200.dataobjectyes
200.data.beakon_codestring, nullablenoBeakon’s record ID.
200.data.beakon_idstring, nullablenoThe worker’s Beakon ID.
200.data.created_atstring (date-time)no
200.data.emailstringnoNeeds personal:contact.
200.data.home_org_idstring (uuid)no
200.data.idstring (uuid)yes
200.data.namestringno
200.data.phonestring, nullablenoNeeds personal:contact.
200.data.statusstringno
200.data.supplier_namestring, nullableno
200.data.supplier_org_idstring (uuid), nullableno
200.data.updated_atstring (date-time)no
200.data.worker_typestring, nullableno

What it is

One person who can sign in — an office user, a supervisor, or a worker in the field. Every person belongs to exactly one organisation; a supplier’s worker is a user inside the supplier org, not inside the head contractor’s.

List the changes to one worker

GET /v1/orgs/{orgId}/objects/workers/{id}/history

beta since 2026-09-28

Group: Lists

Custom access scope: fieldusers:read

Changes made to one worker through bulk edit and undo, newest first.

Parameters

NameInTypeRequiredDescription
idpathstring (uuid)yes
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
limitqueryintegernoRows per page, 1 to 500.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].actionstringyes
200.data[].actorobject, nullableno
200.data[].actor.kindstringyes
200.data[].actor.user_idstring (uuid), nullableno
200.data[].actor.viastringyes
200.data[].afterobject, nullableno
200.data[].after.beakon_codestring, nullableno
200.data[].after.beakon_idstring, nullableno
200.data[].after.created_atstring (date-time), nullableno
200.data[].after.emailstring, nullablenoNeeds personal:contact.
200.data[].after.home_org_idstring (uuid), nullableno
200.data[].after.idstring (uuid), nullableno
200.data[].after.namestring, nullableno
200.data[].after.phonestring, nullablenoNeeds personal:contact.
200.data[].after.statusstring, nullableno
200.data[].after.supplier_namestring, nullableno
200.data[].after.supplier_org_idstring (uuid), nullableno
200.data[].after.updated_atstring (date-time), nullableno
200.data[].after.worker_typestring, nullableno
200.data[].beforeobject, nullableno
200.data[].before.beakon_codestring, nullableno
200.data[].before.beakon_idstring, nullableno
200.data[].before.created_atstring (date-time), nullableno
200.data[].before.emailstring, nullablenoNeeds personal:contact.
200.data[].before.home_org_idstring (uuid), nullableno
200.data[].before.idstring (uuid), nullableno
200.data[].before.namestring, nullableno
200.data[].before.phonestring, nullablenoNeeds personal:contact.
200.data[].before.statusstring, nullableno
200.data[].before.supplier_namestring, nullableno
200.data[].before.supplier_org_idstring (uuid), nullableno
200.data[].before.updated_atstring (date-time), nullableno
200.data[].before.worker_typestring, nullableno
200.data[].changedarrayyes
200.data[].idstringyes
200.data[].occurred_atstring (date-time)yes
200.has_morebooleanyes
200.next_cursorstringno

What it is

One person who can sign in — an office user, a supervisor, or a worker in the field. Every person belongs to exactly one organisation; a supplier’s worker is a user inside the supplier org, not inside the head contractor’s.

List workforce log rows

GET /v1/orgs/{orgId}/views/workforce_log_v1

beta since 2026-09-28

Group: Workforce & sign-ons

Custom access scope: reports:read

Workforce log rows on the projects this caller can read. Filter, choose columns and page with next_cursor. Needs the prestarts:read scope as well. Columns and names match the Core workforce log; see the Workforce log columns page.

Parameters

NameInTypeRequiredDescription
orgIdpathstring (uuid)yes
cursorquerystringnoThe next_cursor from the last page.
fieldsquerystringnoComma-separated column keys: core_log_id, created_date, modified_date, created_by, core_sign_on_id, signee_unique_id, sign_on_name, email, phone_number, sign_on_role, sign_on_date, sign_on_time, core_project_id, project_name, project_contract_no, project_company_id, prestart_date, prestart_time, prestart_location, shift_type, supervisor, supplier, start_time, finish_time, break_start_time, break_duration, shift_hours, linked_docket, apprentice, trainee, gender, date_of_birth, post_code, year_of_commencement, atsi, language_group, beakon_id, lacroo_sign_on_id, lacroo_worker_id, lacroo_project_id, sign_on_time_utc, project_timezone, supervisor_id, sign_on_role_key, shift_type_code, sign_on_location, docket_number, docket_status, gross_hours, break_start_times, record_source.
filter[lacroo_project_id][eq]querystring (uuid)noComma-separated, up to 100.
filter[sign_on_date][eq]querystring (date)noComma-separated, up to 100.
filter[sign_on_date][gt]querystring (date)noGreater than.
filter[sign_on_date][gte]querystring (date)noGreater than or equal to.
filter[sign_on_date][lt]querystring (date)noLess than.
filter[sign_on_date][lte]querystring (date)noLess than or equal to.
limitqueryintegernoRows per page, 1 to 5000.

Response

FieldTypeRequiredNotes
200.dataarrayyes
200.data[].Aboriginal or Torres Strait Islanderstring, nullablenoNeeds personal:diversity.
200.data[].Apprenticestring, nullablenoThe worker’s answer on this project.
200.data[].Beakon IDstring, nullablenoThe worker’s Beakon id.
200.data[].Break Durationinteger (int64), nullablenoBreak minutes, paid and unpaid.
200.data[].Break Start Timestring, nullablenoWhen the first break started.
200.data[].Break Start Timesstring, nullablenoEvery break’s start time, in order.
200.data[].Created Bystring, nullablenoNot recorded.
200.data[].Created Datestring (date-time)noWhen the sign-on was recorded.
200.data[].Date Of Birthstring (date), nullablenoNeeds personal:diversity.
200.data[].Docket Numberstring, nullablenoThe linked docket’s number.
200.data[].Docket Statusstring, nullablenoThe linked docket’s status.
200.data[].Emailstring, nullablenoNeeds personal:contact.
200.data[].Finish Timestring, nullablenoThe docket’s finish time.
200.data[].Genderstring, nullablenoNeeds personal:diversity.
200.data[].Gross Hoursnumber (double), nullablenoGross hours on the docket.
200.data[].Lacroo Project IDstring (uuid)noThe Lacroo project id.
200.data[].Lacroo Sign On IDstring (uuid)noThe Lacroo sign-on id.
200.data[].Lacroo Worker IDstring (uuid)noThe Lacroo worker id.
200.data[].Language Groupstring, nullablenoNeeds personal:diversity.
200.data[].Linked Docketstring, nullablenoThe Core docket id, or the Lacroo docket id.
200.data[].Modified Datestring (date-time)noThe last change to the sign-on, its docket, the worker’s answers or the worker.
200.data[].Phone Numberstring, nullablenoNeeds personal:contact.
200.data[].Post Codestring, nullablenoNeeds personal:contact.
200.data[].Prestart Datestring (date), nullablenoThe prestart’s date.
200.data[].Prestart Locationstring, nullablenoWhere the prestart was held.
200.data[].Prestart Timestring, nullablenoThe prestart’s start time.
200.data[].ProjectstringnoThe Core project id, or the Lacroo project id.
200.data[].Project Company IDstring, nullablenoThe company id of the docket’s stage.
200.data[].Project Contract No.string, nullablenoThe contract number of the docket’s stage.
200.data[].Project NamestringnoThe project’s name.
200.data[].Project TimezonestringnoThe project’s time zone.
200.data[].Record SourcestringnoCore for records moved from Core, else Lacroo.
200.data[].Shift Hoursnumber (double), nullablenoNet hours on the docket.
200.data[].Shift Typestring, nullablenoDay, Afternoon or Night.
200.data[].Shift Type Codestring, nullablenoday, afternoon or night.
200.data[].Sign OnstringnoThe Core sign-on id, or the Lacroo sign-on id.
200.data[].Sign On Datestring (date)noThe shift day, in the project’s time zone.
200.data[].Sign On Locationstring, nullablenoThe location scanned at sign-on.
200.data[].Sign On NamestringnoThe worker’s name.
200.data[].Sign On Rolestring, nullablenoThe worker’s role on the project when they signed on.
200.data[].Sign On Role Keystring, nullablenoThe role’s key.
200.data[].Sign On TimestringnoWhen the worker signed on, in the project’s time zone.
200.data[].Sign On Time UTCstring (date-time)noWhen the worker signed on, in UTC.
200.data[].Signee Unique IDstringnoThe worker’s Lacroo id.
200.data[].Start Timestring, nullablenoThe docket’s start time.
200.data[].Supervisorstring, nullablenoThe supervisor’s name.
200.data[].Supervisor IDstring (uuid), nullablenoThe supervisor’s Lacroo id.
200.data[].Supplierstring, nullablenoThe company the worker came through.
200.data[].Traineestring, nullablenoThe worker’s answer on this project.
200.data[].Year Of Commencementstring, nullablenoThe worker’s answer on this project.
200.data[]._idstringnoThe Core workforce-log id, or the Lacroo sign-on id.
200.has_morebooleanyes
200.next_cursorstringnoPass as cursor for the next page. Absent on the last page.

What it is

One person’s attendance on a project for a shift — the record that says this worker was on site, who supervised them, where they signed on and for which shift-day. It is the project’s single attendance primitive and the trigger that mints the day’s billable docket.