OData
List the OData entity sets
GET /odata/v4/
beta since 2026-09-28
Scope: none
The entity sets this token can read. Power BI and Excel start here.
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.value | array | yes | |
200.value[].kind | string | yes | |
200.value[].name | string | yes | |
200.value[].url | string | yes |
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.
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.
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.
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.
Describe the OData service
GET /odata/v4/$metadata
beta since 2026-09-28
Scope: none
The schema of every entity set, with the filters and sorts each one supports.
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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.
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.
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.
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 Activity log data rows (OData)
GET /odata/v4/activity_log_data_v1
beta since 2026-10-26
Group: Diaries & activities
Custom access scope: activities:write
Activity log data report rows as an OData table for Power BI and Excel. With Custom access, needs activities:write, diaries:read, prestarts:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Actual_Cost | number (double), nullable | no | Actual Cost |
200.value[].Actual_Qty | number (double), nullable | no | Actual Qty |
200.value[].Cost_Code | string, nullable | no | Cost Code |
200.value[].Cost_Rate_Variance | number (double), nullable | no | Cost Rate Variance |
200.value[].Diary_Date | string, nullable | no | Diary Date |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Program_Code | string, nullable | no | Program Code |
200.value[].Project | string, nullable | no | Project |
200.value[].Project_Code | string, nullable | no | Project Code |
200.value[].Project_Company_ID | string, nullable | no | Project Company ID |
200.value[].Qty_Variance_A_T | number (double), nullable | no | Qty Variance (A-T) |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Sub_Code | string, nullable | no | Sub Code |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Target_Cost_Rate | number (double), nullable | no | Target Cost Rate |
200.value[].Target_Cost_Rate_Unit | string, nullable | no | Target Cost Rate Unit |
200.value[].Target_Qty | number (double), nullable | no | Target Qty |
200.value[].Target_Qty_Unit | string, nullable | no | Target Qty Unit |
What it is
A named piece of work on a project — “pour slab, grid 4–6” — that a prestart or diary lists for the day, that the office attributes docket hours and materials to, and that carries the cost code the work posts under.
List Combined report data rows (OData)
GET /odata/v4/combined_report_data_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Combined report data report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Cost_Code | string, nullable | no | Activity Cost Code |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Program_Code | string, nullable | no | Activity Program Code |
200.value[].Activity_Sub_Code | string, nullable | no | Activity Sub Code |
200.value[].Amount | number (double), nullable | no | Amount |
200.value[].Approved_By | string, nullable | no | Approved By |
200.value[].Approved_On | string (date-time), nullable | no | Approved On |
200.value[].Billing_Rate | number (double), nullable | no | Billing Rate |
200.value[].Billing_Unit | string, nullable | no | Billing Unit |
200.value[].Break_Duration_minutes | number (double), nullable | no | Break Duration (minutes) |
200.value[].Break_Start_Time | string (date-time), nullable | no | Break Start Time |
200.value[].Checked_By | string, nullable | no | Checked By |
200.value[].Checked_On | string (date-time), nullable | no | Checked On |
200.value[].Created_By | string, nullable | no | Created By |
200.value[].Created_Date | string (date-time), nullable | no | Created Date |
200.value[].Diary | string, nullable | no | Diary |
200.value[].Docket | string, nullable | no | Docket |
200.value[].Docket_Date | string (date), nullable | no | Docket Date |
200.value[].Docket_Note | string, nullable | no | Docket Note |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Status | string, nullable | no | Docket Status |
200.value[].Docket_Type | string, nullable | no | Docket Type |
200.value[].Finish_Time | string (date-time), nullable | no | Finish Time |
200.value[].Internal_Rate_Card_Description | string, nullable | no | Internal Rate Card Description |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Lacroo_Unique_ID | string, nullable | no | Lacroo Unique ID |
200.value[].Linked_Attachment | string, nullable | no | Linked Attachment |
200.value[].Linked_Material_Receipt | string, nullable | no | Linked Material Receipt |
200.value[].Linked_Work_Item | string, nullable | no | Linked Work Item |
200.value[].Modified_Date | string (date-time), nullable | no | Modified Date |
200.value[].PO_Contract_Line_Description | string, nullable | no | PO/Contract Line Description |
200.value[].PO_Contract_Line_Number | number (double), nullable | no | PO/Contract Line Number |
200.value[].PO_Contract_Number | string, nullable | no | PO/Contract Number |
200.value[].Prestart_Duration_minutes | number (double), nullable | no | Prestart Duration (minutes) |
200.value[].Prestart_PO_Contract_Description | string, nullable | no | Prestart PO/Contract Description |
200.value[].Prestart_PO_Contract_Line_Number | number (double), nullable | no | Prestart PO/Contract Line Number |
200.value[].Prestart_PO_Contract_Number | string, nullable | no | Prestart PO/Contract Number |
200.value[].Project | string, nullable | no | Project |
200.value[].Project_Contract_No | string, nullable | no | Project Contract No. |
200.value[].Project_Name | string, nullable | no | Project Name |
200.value[].Qty | number (double), nullable | no | Qty |
200.value[].Rates_Data_Source | string, nullable | no | Rates Data Source |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Resource | string, nullable | no | Resource |
200.value[].Start_Time | string, nullable | no | Start Time |
200.value[].Subcontractor_Upload_ID | string, nullable | no | Subcontractor Upload ID |
200.value[].Submitted_By | string, nullable | no | Submitted By |
200.value[].Submitted_On | string (date-time), nullable | no | Submitted On |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Supplier_Name | string, nullable | no | Supplier Name |
200.value[].Tagged_Issue_ID | string, nullable | no | Tagged Issue ID |
200.value[].Type | string, nullable | no | Type |
200.value[].Uploaded_to_ERP | boolean, nullable | no | Uploaded to ERP |
200.value[]._id | string, nullable | no | _id |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
A material delivery charged on a docket — the load of aggregate, the pallet of blocks, the drum of emulsion — with the quantity received and the contract rate it was priced at.
List member fields (OData)
GET /odata/v4/member_fields
beta since 2026-09-28
Group: Lists
Custom access scope: reports:read
Member fields as an OData collection for Power BI and Excel. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$expand | query | string | no | Linked records to include, one level. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].apprentice | string, nullable | no | |
200.value[].atsi | string, nullable | no | Needs personal:diversity. |
200.value[].beakon_id | string, nullable | no | |
200.value[].date_of_birth | string (date), nullable | no | Needs personal:diversity. |
200.value[].gender | string, nullable | no | Needs personal:diversity. |
200.value[].id | string (uuid) | no | |
200.value[].joined_at | string (date-time) | no | |
200.value[].language_group | string, nullable | no | Needs personal:diversity. |
200.value[].other_fields | string, nullable | no | Needs personal:diversity. |
200.value[].post_code | string, nullable | no | Needs personal:contact. |
200.value[].project | object, nullable | no | Present with $expand. |
200.value[].project.award_date | string (date), nullable | no | |
200.value[].project.client | string, nullable | no | |
200.value[].project.completion_date | string (date), nullable | no | |
200.value[].project.core_id | string | no | |
200.value[].project.created_at | string (date-time) | no | |
200.value[].project.id | string (uuid) | no | |
200.value[].project.name | string | no | |
200.value[].project.status | string | no | |
200.value[].project.timezone | string | no | |
200.value[].project.updated_at | string (date-time) | no | |
200.value[].project_id | string (uuid) | no | |
200.value[].trainee | string, nullable | no | |
200.value[].updated_at | string (date-time) | no | |
200.value[].verified_at | string (date-time), nullable | no | |
200.value[].worker | object, nullable | no | Present with $expand. |
200.value[].worker.beakon_code | string, nullable | no | Beakon’s record ID. |
200.value[].worker.beakon_id | string, nullable | no | The worker’s Beakon ID. |
200.value[].worker.created_at | string (date-time) | no | |
200.value[].worker.email | string | no | Needs personal:contact. |
200.value[].worker.home_org_id | string (uuid) | no | |
200.value[].worker.id | string (uuid) | no | |
200.value[].worker.name | string | no | |
200.value[].worker.phone | string, nullable | no | Needs personal:contact. |
200.value[].worker.status | string | no | |
200.value[].worker.supplier_name | string, nullable | no | |
200.value[].worker.supplier_org_id | string (uuid), nullable | no | |
200.value[].worker.updated_at | string (date-time) | no | |
200.value[].worker.worker_type | string, nullable | no | |
200.value[].worker_id | string (uuid) | no | |
200.value[].year_of_commencement | string, nullable | no |
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.
Count member fields (OData)
GET /odata/v4/member_fields/$count
beta since 2026-09-28
Group: Lists
Custom access scope: reports:read
How many member fields match the $filter, as plain text. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$filter | query | string | no | An OData filter on the filterable properties. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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 (OData)
GET /odata/v4/projects
beta since 2026-09-28
Group: Lists
Custom access scope: projects:read
Projects as an OData collection for Power BI and Excel.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].award_date | string (date), nullable | no | |
200.value[].client | string, nullable | no | |
200.value[].completion_date | string (date), nullable | no | |
200.value[].core_id | string | no | |
200.value[].created_at | string (date-time) | no | |
200.value[].id | string (uuid) | no | |
200.value[].name | string | no | |
200.value[].status | string | no | |
200.value[].timezone | string | no | |
200.value[].updated_at | string (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.
Count projects (OData)
GET /odata/v4/projects/$count
beta since 2026-09-28
Group: Lists
Custom access scope: projects:read
How many projects match the $filter, as plain text.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$filter | query | string | no | An OData filter on the filterable properties. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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 Activities Report rows (OData)
GET /odata/v4/report_activities_report_v1
beta since 2026-10-26
Group: Diaries & activities
Custom access scope: activities:write
Activities Report report rows as an OData table for Power BI and Excel. With Custom access, needs activities:write, diaries:read, prestarts:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Lacroo_ID | string, nullable | no | Activity Lacroo ID |
200.value[].Actual_Cost | number (double), nullable | no | Actual Cost |
200.value[].Actual_Qty | number (double), nullable | no | Actual Qty |
200.value[].Cost_Code | string, nullable | no | Cost Code |
200.value[].Cost_Code_Description | string, nullable | no | Cost Code Description |
200.value[].Cost_Rate_Variance | number (double), nullable | no | Cost Rate Variance |
200.value[].Diary_Date | string, nullable | no | Diary Date |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Program_Code | string, nullable | no | Program Code |
200.value[].Project | string, nullable | no | Project |
200.value[].Qty_Variance_A_T | number (double), nullable | no | Qty Variance (A-T) |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Sub_Code | string, nullable | no | Sub Code |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Target_Cost_Rate | number (double), nullable | no | Target Cost Rate |
200.value[].Target_Cost_Rate_Unit | string, nullable | no | Target Cost Rate Unit |
200.value[].Target_Qty | number (double), nullable | no | Target Qty |
200.value[].Target_Qty_Unit | string, nullable | no | Target Qty Unit |
What it is
A named piece of work on a project — “pour slab, grid 4–6” — that a prestart or diary lists for the day, that the office attributes docket hours and materials to, and that carries the cost code the work posts under.
List Alerts Matrix rows (OData)
GET /odata/v4/report_alerts_matrix_export_v1
beta since 2026-10-26
Group: Alerts
Custom access scope: alerts:write
Alerts Matrix report rows as an OData table for Power BI and Excel. With Custom access, needs alerts:write.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Acknowledged_By | string, nullable | no | Acknowledged By |
200.value[].Acknowledged_Yes_No | string, nullable | no | Acknowledged Yes/No |
200.value[].Acknowledgement_Source | string, nullable | no | Acknowledgement Source |
200.value[].Alert_Bulletin_Type | string, nullable | no | Alert / Bulletin Type |
200.value[].Alert_ID | string, nullable | no | Alert ID |
200.value[].Alert_Title | string, nullable | no | Alert Title |
200.value[].Date_Specified_DD_MM_YYYY | string, nullable | no | Date Specified DD/MM/YYYY |
200.value[].Date_Specified_Yes_No | string, nullable | no | Date Specified Yes/No |
200.value[].Date_Time_Acknowledged | string, nullable | no | Date/Time Acknowledged |
200.value[].Issued_By | string, nullable | no | Issued By |
200.value[].Issued_On_Date | string, nullable | no | Issued On Date |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Level | string, nullable | no | Level |
200.value[].Mandatory_Yes_No | string, nullable | no | Mandatory Yes/No |
200.value[].Prestart_Date | string, nullable | no | Prestart Date |
200.value[].Prestart_ID | string, nullable | no | Prestart ID |
200.value[].Project | string, nullable | no | Project |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Supervisor | string, nullable | no | Supervisor |
What it is
A safety notice or bulletin the office issues to site — a hazard alert, a toolbox notice, an FYI — that turns up on the pre-start briefing for the crew to be told about and, where it is mandatory, to acknowledge.
List Alerts Report rows (OData)
GET /odata/v4/report_alerts_report_v1
beta since 2026-10-26
Group: Alerts
Custom access scope: prestarts:read
Alerts Report report rows as an OData table for Power BI and Excel. With Custom access, needs prestarts:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Acknowledged_Yes_No | string, nullable | no | Acknowledged Yes/No |
200.value[].Alert_Bulletin_Type | string, nullable | no | Alert / Bulletin Type |
200.value[].Alert_ID | string, nullable | no | Alert ID |
200.value[].Alert_Title | string, nullable | no | Alert Title |
200.value[].Date_Specified_DD_MM_YYYY | string, nullable | no | Date Specified DD/MM/YYYY |
200.value[].Date_Specified_Yes_No | string, nullable | no | Date Specified Yes/No |
200.value[].Date_Time_Acknowledged | string, nullable | no | Date/Time Acknowledged |
200.value[].Issued_By | string, nullable | no | Issued By |
200.value[].Issued_On_Date | string, nullable | no | Issued On Date |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Level | string, nullable | no | Level |
200.value[].Mandatory_Yes_No | string, nullable | no | Mandatory Yes/No |
200.value[].Project | string, nullable | no | Project |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Supervisor | string, nullable | no | Supervisor |
What it is
A safety notice or bulletin the office issues to site — a hazard alert, a toolbox notice, an FYI — that turns up on the pre-start briefing for the crew to be told about and, where it is mandatory, to acknowledge.
List Combined Report rows (OData)
GET /odata/v4/report_combined_report_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Combined Report report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Cost_Code | string, nullable | no | Activity Cost Code |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Program_Code | string, nullable | no | Activity Program Code |
200.value[].Activity_Sub_Code | string, nullable | no | Activity Sub Code |
200.value[].Additional_Supervisors | string, nullable | no | Additional Supervisors |
200.value[].Amount | number (double), nullable | no | Amount |
200.value[].Approved_By | string, nullable | no | Approved By |
200.value[].Approved_On | string, nullable | no | Approved On |
200.value[].Billing_Rate | number (double), nullable | no | Billing Rate |
200.value[].Billing_Unit | string, nullable | no | Billing Unit |
200.value[].Break_Duration | string, nullable | no | Break Duration |
200.value[].Break_Time | string, nullable | no | Break Time |
200.value[].Checked_By | string, nullable | no | Checked By |
200.value[].Checked_On | string, nullable | no | Checked On |
200.value[].Docket_Date | string, nullable | no | Docket Date |
200.value[].Docket_Note | string, nullable | no | Docket Note |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Type | string, nullable | no | Docket Type |
200.value[].Docket_Unique_ID | string, nullable | no | Docket Unique ID |
200.value[].Finish_Time | string, nullable | no | Finish Time |
200.value[].Internal_Rate_Card_Description | string, nullable | no | Internal Rate Card Description |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].PO_Contract_Line_Description | string, nullable | no | PO/Contract Line Description |
200.value[].PO_Contract_Line_Number | number (double), nullable | no | PO/Contract Line Number |
200.value[].PO_Contract_Number | string, nullable | no | PO/Contract Number |
200.value[].Prestart_Duration | string, nullable | no | Prestart Duration |
200.value[].Prestart_PO_Contract_Line_Description | string, nullable | no | Prestart PO/Contract Line Description |
200.value[].Prestart_PO_Contract_Line_Number | string, nullable | no | Prestart PO/Contract Line Number |
200.value[].Prestart_PO_Contract_Number | string, nullable | no | Prestart PO/Contract Number |
200.value[].Project | string, nullable | no | Project |
200.value[].Rate_Source_Data | string, nullable | no | Rate Source Data |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Resource_Name | string, nullable | no | Resource Name |
200.value[].Shift_Qty | string, nullable | no | Shift Qty |
200.value[].Start_Time | string, nullable | no | Start Time |
200.value[].Subcontractor_Upload_ID | string, nullable | no | Subcontractor Upload ID |
200.value[].Submitted_By | string, nullable | no | Submitted By |
200.value[].Submitted_When | string, nullable | no | Submitted When |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Tagged_Issue | string, nullable | no | Tagged Issue |
200.value[].Type | string, nullable | no | Type |
200.value[].Unit_Qty | number (double), nullable | no | Unit Qty |
200.value[].Upload_to_ERP | string, nullable | no | Upload to ERP |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
A material delivery charged on a docket — the load of aggregate, the pallet of blocks, the drum of emulsion — with the quantity received and the contract rate it was priced at.
List Cost allocation rows (OData)
GET /odata/v4/report_cost_allocation_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: reports:read
Cost allocation report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read, reports:read. Each row’s totals cover the requested Report_Date range. Refresh this table in full.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Allocated_Amount | string, nullable | no | Allocated Amount |
200.value[].Allocated_Qty | string, nullable | no | Allocated Qty |
200.value[].Code | string, nullable | no | Code |
200.value[].Committed_Amount | string, nullable | no | Committed Amount |
200.value[].Committed_Qty | string, nullable | no | Committed Qty |
200.value[].Contributing_Docket_IDs | string, nullable | no | Contributing Docket IDs |
200.value[].Description | string, nullable | no | Description |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Lacroo_Supplier_Org_ID | string (uuid) | no | The row’s supplier. |
200.value[].Line_Number | string, nullable | no | Line Number |
200.value[].Orphaned | string, nullable | no | Orphaned |
200.value[].PM_Line_ID | string, nullable | no | PM Line ID |
200.value[].Range_From | string (date) | no | The first day the row’s totals cover: the requested range. |
200.value[].Range_To | string (date) | no | The last day the row’s totals cover: the requested range. |
200.value[].Report_Date | string (date) | no | The last day of the requested range (Range_To). |
200.value[].Unit | string, nullable | no | Unit |
200.value[].Used_Amount | string, nullable | no | Used Amount |
200.value[].Used_Qty | string, nullable | no | Used Qty |
200.value[].Variance | string, nullable | no | Variance |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
List Dayworks Report Export rows (OData)
GET /odata/v4/report_dayworks_report_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Dayworks Report Export report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Cost_Code | string, nullable | no | Activity Cost Code |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Program_Code | string, nullable | no | Activity Program Code |
200.value[].Activity_Sub_Code | string, nullable | no | Activity Sub Code |
200.value[].Approved_By | string, nullable | no | Approved By |
200.value[].Approved_On | string, nullable | no | Approved On |
200.value[].Break_Duration | string, nullable | no | Break Duration |
200.value[].Break_Time | string, nullable | no | Break Time |
200.value[].Checked_By | string, nullable | no | Checked By |
200.value[].Checked_On | string, nullable | no | Checked On |
200.value[].Day_Works_Amount | string, nullable | no | Day Works Amount |
200.value[].Day_Works_Description | string, nullable | no | Day Works Description |
200.value[].Day_Works_Qty | string, nullable | no | Day Works Qty |
200.value[].Day_Works_Rate | string, nullable | no | Day Works Rate |
200.value[].Day_Works_Unit | string, nullable | no | Day Works Unit |
200.value[].Docket_Date | string, nullable | no | Docket Date |
200.value[].Docket_Note | string, nullable | no | Docket Note |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Photos | string, nullable | no | Docket Photos |
200.value[].Docket_Status | string, nullable | no | Docket Status |
200.value[].Docket_Type | string, nullable | no | Docket Type |
200.value[].Docket_Unique_ID | string, nullable | no | Docket Unique ID |
200.value[].Docket_Unit_Qty | string, nullable | no | Docket Unit Qty |
200.value[].Finish_Time | string, nullable | no | Finish Time |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Resource_Name_A | string, nullable | no | Resource Name A |
200.value[].Resource_Name_B | string, nullable | no | Resource Name B |
200.value[].Start_Time | string, nullable | no | Start Time |
200.value[].Submitted_By | string, nullable | no | Submitted By |
200.value[].Submitted_When | string, nullable | no | Submitted When |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Tagged_Issue | string, nullable | no | Tagged Issue |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
List Daily Diaries rows (OData)
GET /odata/v4/report_diary_export_v1
beta since 2026-10-26
Group: Diaries & activities
Custom access scope: diaries:read
Daily Diaries report rows as an OData table for Power BI and Excel. With Custom access, needs diaries:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Diary_Date | string, nullable | no | Diary Date |
200.value[].Diary_Saved | string, nullable | no | Diary Saved |
200.value[].Diary_Submitted | string, nullable | no | Diary Submitted |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Other_Fields | string, nullable | no | Needs personal:diversity. |
200.value[].Project | string, nullable | no | Project |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Site_Location | string, nullable | no | Site Location |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Visitors | string, nullable | no | Visitors |
200.value[].Weather_Observations | string, nullable | no | Weather Observations |
What it is
The supervisor’s daily shift record — one per supervisor per project per date per shift — evidencing what actually happened on site.
List Labour & Plant Dockets rows (OData)
GET /odata/v4/report_dockets_export_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Labour & Plant Dockets report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Cost_Code | string, nullable | no | Activity Cost Code |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Program_Code | string, nullable | no | Activity Program Code |
200.value[].Activity_Sub_Code | string, nullable | no | Activity Sub Code |
200.value[].Additional_Supervisors | string, nullable | no | Additional Supervisors |
200.value[].Amount | number (double), nullable | no | Amount |
200.value[].Approved_By | string, nullable | no | Approved By |
200.value[].Approved_On | string, nullable | no | Approved On |
200.value[].Break_Duration | string, nullable | no | Break Duration |
200.value[].Break_Time | string, nullable | no | Break Time |
200.value[].Checked_By | string, nullable | no | Checked By |
200.value[].Checked_On | string, nullable | no | Checked On |
200.value[].Daywork_Amount | number (double), nullable | no | Daywork Amount |
200.value[].Daywork_Description | string, nullable | no | Daywork Description |
200.value[].Daywork_Qty | number (double), nullable | no | Daywork Qty |
200.value[].Daywork_Rate | number (double), nullable | no | Daywork Rate |
200.value[].Daywork_Unit | string, nullable | no | Daywork Unit |
200.value[].Docket_Date | string, nullable | no | Docket Date |
200.value[].Docket_Note | string, nullable | no | Docket Note |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Status | string, nullable | no | Docket Status |
200.value[].Docket_Type | string, nullable | no | Docket Type |
200.value[].Docket_Unique_ID | string, nullable | no | Docket Unique ID |
200.value[].Finish_Time | string, nullable | no | Finish Time |
200.value[].GRN_Pushed | string, nullable | no | GRN Pushed |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].PO_Contract_Number | string, nullable | no | PO/Contract Number |
200.value[].PO_Line_Number | number (double), nullable | no | PO Line Number |
200.value[].Qty | number (double), nullable | no | Qty |
200.value[].Rate | number (double), nullable | no | Rate |
200.value[].Rates_Data_Source | string, nullable | no | Rates Data Source |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Resource_Name | string, nullable | no | Resource Name |
200.value[].Start_Time | string, nullable | no | Start Time |
200.value[].Submitted_By | string, nullable | no | Submitted By |
200.value[].Submitted_When | string, nullable | no | Submitted When |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Tagged_Issue | string, nullable | no | Tagged Issue |
200.value[].Type | string, nullable | no | Type |
200.value[].Unit | string, nullable | no | Unit |
200.value[].Work_Description | string, nullable | no | Work Description |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
List Inductions Export (Responses Detail) rows (OData)
GET /odata/v4/report_inductions_export_responses_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: inductions:write
Inductions Export (Responses Detail) report rows as an OData table for Power BI and Excel. With Custom access, needs inductions:write.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Answer | string, nullable | no | Needs personal:diversity. |
200.value[].Field_Type | string, nullable | no | Field Type |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Project | string, nullable | no | Project |
200.value[].Question | string, nullable | no | Question |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Role | string, nullable | no | Role |
200.value[].Sign_On_Date | string, nullable | no | Sign On Date |
200.value[].Sign_On_ID | string, nullable | no | Sign-On ID |
200.value[].Sign_On_Time | string, nullable | no | Sign On Time |
200.value[].Signee | string, nullable | no | Signee |
What it is
One visitor’s completed site induction — who they are, who they work for, what they inducted as, what they declared, and the digital site pass they were issued. It is the register a site shows when asked who has been inducted.
List Inductions Export (Sign Ons) rows (OData)
GET /odata/v4/report_inductions_export_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: inductions:write
Inductions Export (Sign Ons) report rows as an OData table for Power BI and Excel. With Custom access, needs inductions:write.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Lacroo_Project_ID | string (uuid), nullable | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Org | string, nullable | no | Org |
200.value[].Other_Fields | string, nullable | no | Needs personal:diversity. |
200.value[].Project | string, nullable | no | Project |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Role | string, nullable | no | Role |
200.value[].Sign_On_Date | string, nullable | no | Sign On Date |
200.value[].Sign_On_ID | string, nullable | no | Sign-On ID |
200.value[].Sign_On_Time | string, nullable | no | Sign On Time |
200.value[].Signee | string, nullable | no | Signee |
200.value[].Title | string, nullable | no | Title |
200.value[]._Answered | integer (int64), nullable | no | # Answered |
200.value[]._Questions | integer (int64), nullable | no | # Questions |
What it is
One visitor’s completed site induction — who they are, who they work for, what they inducted as, what they declared, and the digital site pass they were issued. It is the register a site shows when asked who has been inducted.
List Issues Log rows (OData)
GET /odata/v4/report_issues_export_v1
beta since 2026-10-26
Group: Issues & variations
Custom access scope: issues:read
Issues Log report rows as an OData table for Power BI and Excel. With Custom access, needs issues:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Agreed_Date | string, nullable | no | Agreed Date |
200.value[].Agreed_Value | string, nullable | no | Agreed Value |
200.value[].Assessed_Date | string, nullable | no | Assessed Date |
200.value[].Assessed_Value | string, nullable | no | Assessed Value |
200.value[].Cause | string, nullable | no | Cause |
200.value[].Cost_Code | string, nullable | no | Cost Code |
200.value[].Cost_Impact | string, nullable | no | Cost Impact |
200.value[].EOT_Reference | string, nullable | no | EOT Reference |
200.value[].Identified_Date | string, nullable | no | Identified Date |
200.value[].Impact | string, nullable | no | Impact |
200.value[].Issue_Heading | string, nullable | no | Issue Heading |
200.value[].Issue_ID | string, nullable | no | Issue ID |
200.value[].Issue_Status | string, nullable | no | Issue Status |
200.value[].Issue_Type | string, nullable | no | Issue Type |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Location | string, nullable | no | Location |
200.value[].Notified_Date | string, nullable | no | Notified Date |
200.value[].Notified_Value | string, nullable | no | Notified Value |
200.value[].Program_Code | string, nullable | no | Program Code |
200.value[].Project | string, nullable | no | Project |
200.value[].Raised_By | string, nullable | no | Raised By |
200.value[].Raised_Date | string, nullable | no | Raised Date |
200.value[].Raised_Value | string, nullable | no | Raised Value |
200.value[].Reference_Document | string, nullable | no | Reference Document |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Submitted_Date | string, nullable | no | Submitted Date |
200.value[].Submitted_Value | string, nullable | no | Submitted Value |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Time_Impact | string, nullable | no | Time Impact |
200.value[].isEOT | string, nullable | no | isEOT |
What it is
A variation, delay or claimable event raised on a project and carried through its commercial lifecycle — Identified, Notified, Submitted, Assessed, Agreed — with the dollars and the days it is worth recorded at each of those stages. This is the register the contracts team defends a claim from.
List Issues & variations rows (OData)
GET /odata/v4/report_issues_variations_v1
beta since 2026-10-26
Group: Issues & variations
Custom access scope: reports:read
Issues & variations report rows as an OData table for Power BI and Excel. With Custom access, needs issues:read, reports:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Agreed_Date | string, nullable | no | Agreed Date |
200.value[].Agreed_Days | string, nullable | no | Agreed Days |
200.value[].Agreed_Value | string, nullable | no | Agreed Value |
200.value[].Assessed_Date | string, nullable | no | Assessed Date |
200.value[].Assessed_Days | string, nullable | no | Assessed Days |
200.value[].Assessed_Value | string, nullable | no | Assessed Value |
200.value[].Cause | string, nullable | no | Cause |
200.value[].Client_Reference | string, nullable | no | Client Reference |
200.value[].Comment_Action | string, nullable | no | Comment/Action |
200.value[].Comment_Count | string, nullable | no | Comment Count |
200.value[].Cost_Code | string, nullable | no | Cost Code |
200.value[].Cost_Code_Description | string, nullable | no | Cost Code Description |
200.value[].Cost_Impact | string, nullable | no | Cost Impact |
200.value[].Created_At | string, nullable | no | Created At |
200.value[].Docket_Count | string, nullable | no | Docket Count |
200.value[].Docket_Numbers | string, nullable | no | Docket Numbers |
200.value[].Docket_Value | string, nullable | no | Docket Value |
200.value[].EOT_Linked_Issue | string, nullable | no | EOT-Linked Issue |
200.value[].EOT_Reference | string, nullable | no | EOT Reference |
200.value[].ERP_Reference | string, nullable | no | ERP Reference |
200.value[].File_Count | string, nullable | no | File Count |
200.value[].Heading | string, nullable | no | Heading |
200.value[].Identified_Date | string, nullable | no | Identified Date |
200.value[].Identified_Days | string, nullable | no | Identified Days |
200.value[].Identified_Value | string, nullable | no | Identified Value |
200.value[].Impact | string, nullable | no | Impact |
200.value[].Is_EOT | string, nullable | no | Is EOT |
200.value[].Issue_ID | string, nullable | no | Issue ID |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Last_Changed_At | string, nullable | no | Last Changed At |
200.value[].Last_Changed_By | string, nullable | no | Last Changed By |
200.value[].Last_Transition | string, nullable | no | Last Transition |
200.value[].Location | string, nullable | no | Location |
200.value[].Notification_Deadline | string, nullable | no | Notification Deadline |
200.value[].Notified_Date | string, nullable | no | Notified Date |
200.value[].Notified_Days | string, nullable | no | Notified Days |
200.value[].Notified_In_Time | string, nullable | no | Notified In Time |
200.value[].Notified_Value | string, nullable | no | Notified Value |
200.value[].Other_Fields | string, nullable | no | Needs personal:diversity. |
200.value[].Owner_Assignee | string, nullable | no | Owner (Assignee) |
200.value[].Raised_By | string, nullable | no | Raised By |
200.value[].Reference_Document | string, nullable | no | Reference Document |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Source | string, nullable | no | Source |
200.value[].Stage | string, nullable | no | Stage |
200.value[].Status | string, nullable | no | Status |
200.value[].Status_Change_Count | string, nullable | no | Status-Change Count |
200.value[].Submitted_Date | string, nullable | no | Submitted Date |
200.value[].Submitted_Days | string, nullable | no | Submitted Days |
200.value[].Submitted_Value | string, nullable | no | Submitted Value |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Time_Impact_days | string, nullable | no | Time Impact days |
200.value[].Type | string, nullable | no | Type |
200.value[].Updated_At | string, nullable | no | Updated At |
What it is
A variation, delay or claimable event raised on a project and carried through its commercial lifecycle — Identified, Notified, Submitted, Assessed, Agreed — with the dollars and the days it is worth recorded at each of those stages. This is the register the contracts team defends a claim from.
List Material Dockets rows (OData)
GET /odata/v4/report_material_dockets_export_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Material Dockets report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity | string, nullable | no | Activity |
200.value[].Amount | string, nullable | no | Amount |
200.value[].Construction_Lot | string, nullable | no | Construction Lot |
200.value[].Cost_Code | string, nullable | no | Cost Code |
200.value[].Delivery_Location | string, nullable | no | Delivery Location |
200.value[].Diary_Date | string, nullable | no | Diary Date |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Line_Item_Description | string, nullable | no | Line Item Description |
200.value[].PO_Line_Item_No | string, nullable | no | PO Line Item No. |
200.value[].PO_Number | string, nullable | no | PO Number |
200.value[].Project | string, nullable | no | Project |
200.value[].Qty | string, nullable | no | Qty |
200.value[].Rate | string, nullable | no | Rate |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Source_Location | string, nullable | no | Source Location |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Unit | string, nullable | no | Unit |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
A material delivery charged on a docket — the load of aggregate, the pallet of blocks, the drum of emulsion — with the quantity received and the contract rate it was priced at.
List Onsite Workers rows (OData)
GET /odata/v4/report_onsite_workers_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: signons:read
Onsite Workers report rows as an OData table for Power BI and Excel. With Custom access, needs prestarts:read, signons:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].prestart_date | string, nullable | no | prestart_date |
200.value[].prestart_location | string, nullable | no | prestart_location |
200.value[].resource_type | string, nullable | no | resource_type |
200.value[].sign_on_time | string, nullable | no | sign_on_time |
200.value[].signee | string, nullable | no | signee |
200.value[].supervisor | string, nullable | no | supervisor |
200.value[].supplier | string, nullable | no | supplier |
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 Prestart Report rows (OData)
GET /odata/v4/report_prestart_report_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: prestarts:read
Prestart Report report rows as an OData table for Power BI and Excel. With Custom access, needs prestarts:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Details_from_Previous_Shift | string, nullable | no | Details from Previous Shift |
200.value[].General_Business | string, nullable | no | General Business |
200.value[].Incident_Alerts | string, nullable | no | Incident Alerts |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Latest_Changes_On | string, nullable | no | Latest Changes On |
200.value[].New_Hazards | string, nullable | no | New Hazards |
200.value[].Other_Fields | string, nullable | no | Needs personal:diversity. |
200.value[].Prestart_Date | string, nullable | no | Prestart Date |
200.value[].Project | string, nullable | no | Project |
200.value[].Published_On | string, nullable | no | Published On |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Safety_is_My_Way | string, nullable | no | Safety is My Way |
200.value[].Site_Location | string, nullable | no | Site Location |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Work_Planned | string, nullable | no | Work Planned |
What it is
A pre-shift safety briefing run by a supervisor — workers sign on against it, creating the attendance record the day’s labour hangs off.
List Sign-ons rows (OData)
GET /odata/v4/report_sign_ons_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: reports:read
Sign-ons report rows as an OData table for Power BI and Excel. With Custom access, needs prestarts:read, reports:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Break_Duration_mins | string, nullable | no | Break Duration (mins) |
200.value[].Break_Start_s | string, nullable | no | Break Start(s) |
200.value[].Docket_Created | string, nullable | no | Docket Created |
200.value[].Docket_Finish | string, nullable | no | Docket Finish |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Shift_Type | string, nullable | no | Docket Shift Type |
200.value[].Docket_Start | string, nullable | no | Docket Start |
200.value[].Docket_Supervisor | string, nullable | no | Docket Supervisor |
200.value[].Docket_Supplier | string, nullable | no | Docket Supplier |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Other_Fields | string, nullable | no | Needs personal:diversity. |
200.value[].Prestart_Date | string, nullable | no | Prestart Date |
200.value[].Prestart_Location | string, nullable | no | Prestart Location |
200.value[].Prestart_Time | string, nullable | no | Prestart Time |
200.value[].Project | string, nullable | no | Project |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Shift_Hours_Gross | string, nullable | no | Shift Hours (Gross) |
200.value[].Shift_Hours_Net | string, nullable | no | Shift Hours (Net) |
200.value[].Shift_Type | string, nullable | no | Shift Type |
200.value[].Sign_on_Date | string, nullable | no | Sign-on Date |
200.value[].Sign_on_Location | string, nullable | no | Sign-on Location |
200.value[].Sign_on_Time | string, nullable | no | Sign-on Time |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Worker | string, nullable | no | Worker |
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 Subcontractor Dockets rows (OData)
GET /odata/v4/report_subcontractor_dockets_export_v1
beta since 2026-10-26
Group: Dockets & costs
Custom access scope: dockets:read
Subcontractor Dockets report rows as an OData table for Power BI and Excel. With Custom access, needs dockets:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Activity_Cost_Code | string, nullable | no | Activity Cost Code |
200.value[].Activity_Description | string, nullable | no | Activity Description |
200.value[].Activity_Program_Code | string, nullable | no | Activity Program Code |
200.value[].Activity_Sub_Code | string, nullable | no | Activity Sub Code |
200.value[].Approved_By | string, nullable | no | Approved By |
200.value[].Approved_On | string, nullable | no | Approved On |
200.value[].Billing_Rate_per_Unit | number (double), nullable | no | Billing Rate per Unit |
200.value[].Billing_Unit | string, nullable | no | Billing Unit |
200.value[].Checked_By | string, nullable | no | Checked By |
200.value[].Checked_On | string, nullable | no | Checked On |
200.value[].Docket_Amount | number (double), nullable | no | Docket Amount |
200.value[].Docket_Date | string, nullable | no | Docket Date |
200.value[].Docket_Note | string, nullable | no | Docket Note |
200.value[].Docket_Number | string, nullable | no | Docket Number |
200.value[].Docket_Photos | string, nullable | no | Docket Photos |
200.value[].Docket_Type | string, nullable | no | Docket Type |
200.value[].Docket_Unique_ID | string, nullable | no | Docket Unique ID |
200.value[].Docket_Unit_Qty | number (double), nullable | no | Docket Unit Qty |
200.value[].Internal_Rate_Card_Description | string, nullable | no | Internal Rate Card Description |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].PO_Line_Description | string, nullable | no | PO Line Description |
200.value[].PO_Line_Number | integer (int64), nullable | no | PO Line Number |
200.value[].PO_Number | string, nullable | no | PO Number |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Submitted_By | string, nullable | no | Submitted By |
200.value[].Submitted_When | string, nullable | no | Submitted When |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Tagged_Issue | string, nullable | no | Tagged Issue |
What it is
A billable record of work performed by a supplier’s worker or equipment on a project shift — the atom of the money chain.
List Workforce Log rows (OData)
GET /odata/v4/report_workforce_log_v1
beta since 2026-10-26
Group: Workforce & sign-ons
Custom access scope: signons:read
Workforce Log report rows as an OData table for Power BI and Excel. With Custom access, needs prestarts:read, signons:read.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Aboriginal_or_Torres_Strait_Islander | string, nullable | no | Needs personal:diversity. |
200.value[].Apprentice | string, nullable | no | Apprentice |
200.value[].Beakon_ID | string, nullable | no | Beakon ID |
200.value[].Date_Of_Birth | string, nullable | no | Needs personal:diversity. |
200.value[].Email | string, nullable | no | Needs personal:contact. |
200.value[].Gender | string, nullable | no | Needs personal:diversity. |
200.value[].Lacroo_Project_ID | string (uuid) | no | The row’s project. |
200.value[].Lacroo_Row_Key | string | no | Unique within one full refresh. Not a record id. |
200.value[].Language_Group | string, nullable | no | Needs personal:diversity. |
200.value[].Phone_Number | string, nullable | no | Needs personal:contact. |
200.value[].Post_Code | string, nullable | no | Needs personal:contact. |
200.value[].Prestart_Date | string, nullable | no | Prestart Date |
200.value[].Prestart_Location | string, nullable | no | Prestart Location |
200.value[].Prestart_Time | string, nullable | no | Prestart Time |
200.value[].Project | string, nullable | no | Project |
200.value[].Project_Code | string, nullable | no | Project Code |
200.value[].Project_Company_ID | string, nullable | no | Project Company ID |
200.value[].Report_Date | string (date) | no | The row’s date: the column the report filters on. |
200.value[].Shift_Type | string, nullable | no | Shift Type |
200.value[].Sign_On_Date | string, nullable | no | Sign On Date |
200.value[].Sign_On_Name | string, nullable | no | Sign On Name |
200.value[].Sign_On_Role | string, nullable | no | Sign On Role |
200.value[].Sign_On_Time | string, nullable | no | Sign On Time |
200.value[].Supervisor | string, nullable | no | Supervisor |
200.value[].Supplier | string, nullable | no | Supplier |
200.value[].Trainee | string, nullable | no | Trainee |
200.value[].Unique_ID | string, nullable | no | Unique ID |
200.value[].Year_Of_Commencement | string, nullable | no | Year Of Commencement |
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 sign-ons (OData)
GET /odata/v4/sign_ons
beta since 2026-09-28
Group: Lists
Custom access scope: signons:read
Sign-ons as an OData collection for Power BI and Excel. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$expand | query | string | no | Linked records to include, one level. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].core_id | string | no | The Core sign-on id for records moved from Core, else the Lacroo id. |
200.value[].created_at | string (date-time) | no | |
200.value[].id | string (uuid) | no | |
200.value[].location_id | string (uuid), nullable | no | |
200.value[].member_fields | object, nullable | no | Present with $expand. |
200.value[].member_fields.apprentice | string, nullable | no | |
200.value[].member_fields.atsi | string, nullable | no | Needs personal:diversity. |
200.value[].member_fields.beakon_id | string, nullable | no | |
200.value[].member_fields.date_of_birth | string (date), nullable | no | Needs personal:diversity. |
200.value[].member_fields.gender | string, nullable | no | Needs personal:diversity. |
200.value[].member_fields.id | string (uuid) | no | |
200.value[].member_fields.joined_at | string (date-time) | no | |
200.value[].member_fields.language_group | string, nullable | no | Needs personal:diversity. |
200.value[].member_fields.other_fields | string, nullable | no | Needs personal:diversity. |
200.value[].member_fields.post_code | string, nullable | no | Needs personal:contact. |
200.value[].member_fields.project | object, nullable | no | Present with $expand. |
200.value[].member_fields.project.award_date | string (date), nullable | no | |
200.value[].member_fields.project.client | string, nullable | no | |
200.value[].member_fields.project.completion_date | string (date), nullable | no | |
200.value[].member_fields.project.core_id | string | no | |
200.value[].member_fields.project.created_at | string (date-time) | no | |
200.value[].member_fields.project.id | string (uuid) | no | |
200.value[].member_fields.project.name | string | no | |
200.value[].member_fields.project.status | string | no | |
200.value[].member_fields.project.timezone | string | no | |
200.value[].member_fields.project.updated_at | string (date-time) | no | |
200.value[].member_fields.project_id | string (uuid) | no | |
200.value[].member_fields.trainee | string, nullable | no | |
200.value[].member_fields.updated_at | string (date-time) | no | |
200.value[].member_fields.verified_at | string (date-time), nullable | no | |
200.value[].member_fields.worker | object, nullable | no | Present with $expand. |
200.value[].member_fields.worker.beakon_code | string, nullable | no | Beakon’s record ID. |
200.value[].member_fields.worker.beakon_id | string, nullable | no | The worker’s Beakon ID. |
200.value[].member_fields.worker.created_at | string (date-time) | no | |
200.value[].member_fields.worker.email | string | no | Needs personal:contact. |
200.value[].member_fields.worker.home_org_id | string (uuid) | no | |
200.value[].member_fields.worker.id | string (uuid) | no | |
200.value[].member_fields.worker.name | string | no | |
200.value[].member_fields.worker.phone | string, nullable | no | Needs personal:contact. |
200.value[].member_fields.worker.status | string | no | |
200.value[].member_fields.worker.supplier_name | string, nullable | no | |
200.value[].member_fields.worker.supplier_org_id | string (uuid), nullable | no | |
200.value[].member_fields.worker.updated_at | string (date-time) | no | |
200.value[].member_fields.worker.worker_type | string, nullable | no | |
200.value[].member_fields.worker_id | string (uuid) | no | |
200.value[].member_fields.year_of_commencement | string, nullable | no | |
200.value[].prestart_id | string (uuid), nullable | no | |
200.value[].project | object, nullable | no | Present with $expand. |
200.value[].project.award_date | string (date), nullable | no | |
200.value[].project.client | string, nullable | no | |
200.value[].project.completion_date | string (date), nullable | no | |
200.value[].project.core_id | string | no | |
200.value[].project.created_at | string (date-time) | no | |
200.value[].project.id | string (uuid) | no | |
200.value[].project.name | string | no | |
200.value[].project.status | string | no | |
200.value[].project.timezone | string | no | |
200.value[].project.updated_at | string (date-time) | no | |
200.value[].project_id | string (uuid) | no | |
200.value[].role_key | string, nullable | no | |
200.value[].role_name | string, nullable | no | |
200.value[].shift_date | string (date) | no | The shift day on site, in the project’s time zone. |
200.value[].shift_type | string, nullable | no | |
200.value[].signed_at | string (date-time) | no | |
200.value[].supervisor | object, nullable | no | Present with $expand. |
200.value[].supervisor.beakon_code | string, nullable | no | Beakon’s record ID. |
200.value[].supervisor.beakon_id | string, nullable | no | The worker’s Beakon ID. |
200.value[].supervisor.created_at | string (date-time) | no | |
200.value[].supervisor.email | string | no | Needs personal:contact. |
200.value[].supervisor.home_org_id | string (uuid) | no | |
200.value[].supervisor.id | string (uuid) | no | |
200.value[].supervisor.name | string | no | |
200.value[].supervisor.phone | string, nullable | no | Needs personal:contact. |
200.value[].supervisor.status | string | no | |
200.value[].supervisor.supplier_name | string, nullable | no | |
200.value[].supervisor.supplier_org_id | string (uuid), nullable | no | |
200.value[].supervisor.updated_at | string (date-time) | no | |
200.value[].supervisor.worker_type | string, nullable | no | |
200.value[].supervisor_id | string (uuid), nullable | no | |
200.value[].updated_at | string (date-time) | no | |
200.value[].worker | object, nullable | no | Present with $expand. |
200.value[].worker.beakon_code | string, nullable | no | Beakon’s record ID. |
200.value[].worker.beakon_id | string, nullable | no | The worker’s Beakon ID. |
200.value[].worker.created_at | string (date-time) | no | |
200.value[].worker.email | string | no | Needs personal:contact. |
200.value[].worker.home_org_id | string (uuid) | no | |
200.value[].worker.id | string (uuid) | no | |
200.value[].worker.name | string | no | |
200.value[].worker.phone | string, nullable | no | Needs personal:contact. |
200.value[].worker.status | string | no | |
200.value[].worker.supplier_name | string, nullable | no | |
200.value[].worker.supplier_org_id | string (uuid), nullable | no | |
200.value[].worker.updated_at | string (date-time) | no | |
200.value[].worker.worker_type | string, nullable | no | |
200.value[].worker_id | string (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.
Count sign-ons (OData)
GET /odata/v4/sign_ons/$count
beta since 2026-09-28
Group: Lists
Custom access scope: signons:read
How many sign-ons match the $filter, as plain text. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$filter | query | string | no | An OData filter on the filterable properties. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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 (OData)
GET /odata/v4/workers
beta since 2026-09-28
Group: Lists
Custom access scope: fieldusers:read
Workers as an OData collection for Power BI and Excel.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].beakon_code | string, nullable | no | Beakon’s record ID. |
200.value[].beakon_id | string, nullable | no | The worker’s Beakon ID. |
200.value[].created_at | string (date-time) | no | |
200.value[].email | string | no | Needs personal:contact. |
200.value[].home_org_id | string (uuid) | no | |
200.value[].id | string (uuid) | no | |
200.value[].name | string | no | |
200.value[].phone | string, nullable | no | Needs personal:contact. |
200.value[].status | string | no | |
200.value[].supplier_name | string, nullable | no | |
200.value[].supplier_org_id | string (uuid), nullable | no | |
200.value[].updated_at | string (date-time) | no | |
200.value[].worker_type | string, nullable | no |
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.
Count workers (OData)
GET /odata/v4/workers/$count
beta since 2026-09-28
Group: Lists
Custom access scope: fieldusers:read
How many workers match the $filter, as plain text.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$filter | query | string | no | An OData filter on the filterable properties. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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 (OData)
GET /odata/v4/workforce_log_v1
beta since 2026-09-28
Group: Workforce & sign-ons
Custom access scope: reports:read
Workforce log rows as an OData collection for Power BI and Excel. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$count | query | boolean | no | Include @odata.count. |
$filter | query | string | no | An OData filter on the filterable properties. |
$format | query | string | no | json |
$orderby | query | string | no | The declared order, ascending. |
$select | query | string | no | Comma-separated property names. |
$skiptoken | query | string | no | The token from @odata.nextLink. |
$top | query | integer | no | Rows to return in all. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.@odata.context | string | yes | |
200.@odata.count | integer (int64) | no | |
200.@odata.nextLink | string | no | |
200.value | array | yes | |
200.value[].Aboriginal_or_Torres_Strait_Islander | string, nullable | no | Needs personal:diversity. |
200.value[].Apprentice | string, nullable | no | The worker’s answer on this project. |
200.value[].Beakon_ID | string, nullable | no | The worker’s Beakon id. |
200.value[].Break_Duration | integer (int64), nullable | no | Break minutes, paid and unpaid. |
200.value[].Break_Start_Time | string, nullable | no | When the first break started. |
200.value[].Break_Start_Times | string, nullable | no | Every break’s start time, in order. |
200.value[].Created_By | string, nullable | no | Not recorded. |
200.value[].Created_Date | string (date-time) | no | When the sign-on was recorded. |
200.value[].Date_Of_Birth | string (date), nullable | no | Needs personal:diversity. |
200.value[].Docket_Number | string, nullable | no | The linked docket’s number. |
200.value[].Docket_Status | string, nullable | no | The linked docket’s status. |
200.value[].Email | string, nullable | no | Needs personal:contact. |
200.value[].Finish_Time | string, nullable | no | The docket’s finish time. |
200.value[].Gender | string, nullable | no | Needs personal:diversity. |
200.value[].Gross_Hours | number (double), nullable | no | Gross hours on the docket. |
200.value[].Lacroo_Project_ID | string (uuid) | no | The Lacroo project id. |
200.value[].Lacroo_Sign_On_ID | string (uuid) | no | The Lacroo sign-on id. |
200.value[].Lacroo_Worker_ID | string (uuid) | no | The Lacroo worker id. |
200.value[].Language_Group | string, nullable | no | Needs personal:diversity. |
200.value[].Linked_Docket | string, nullable | no | The Core docket id, or the Lacroo docket id. |
200.value[].Modified_Date | string (date-time) | no | The last change to the sign-on, its docket, the worker’s answers or the worker. |
200.value[].Phone_Number | string, nullable | no | Needs personal:contact. |
200.value[].Post_Code | string, nullable | no | Needs personal:contact. |
200.value[].Prestart_Date | string (date), nullable | no | The prestart’s date. |
200.value[].Prestart_Location | string, nullable | no | Where the prestart was held. |
200.value[].Prestart_Time | string, nullable | no | The prestart’s start time. |
200.value[].Project | string | no | The Core project id, or the Lacroo project id. |
200.value[].Project_Company_ID | string, nullable | no | The company id of the docket’s stage. |
200.value[].Project_Contract_No | string, nullable | no | The contract number of the docket’s stage. |
200.value[].Project_Name | string | no | The project’s name. |
200.value[].Project_Timezone | string | no | The project’s time zone. |
200.value[].Record_Source | string | no | Core for records moved from Core, else Lacroo. |
200.value[].Shift_Hours | number (double), nullable | no | Net hours on the docket. |
200.value[].Shift_Type | string, nullable | no | Day, Afternoon or Night. |
200.value[].Shift_Type_Code | string, nullable | no | day, afternoon or night. |
200.value[].Sign_On | string | no | The Core sign-on id, or the Lacroo sign-on id. |
200.value[].Sign_On_Date | string (date) | no | The shift day, in the project’s time zone. |
200.value[].Sign_On_Location | string, nullable | no | The location scanned at sign-on. |
200.value[].Sign_On_Name | string | no | The worker’s name. |
200.value[].Sign_On_Role | string, nullable | no | The worker’s role on the project when they signed on. |
200.value[].Sign_On_Role_Key | string, nullable | no | The role’s key. |
200.value[].Sign_On_Time | string (date-time) | no | When the worker signed on, in the project’s time zone. |
200.value[].Sign_On_Time_UTC | string (date-time) | no | When the worker signed on, in UTC. |
200.value[].Signee_Unique_ID | string | no | The worker’s Lacroo id. |
200.value[].Start_Time | string, nullable | no | The docket’s start time. |
200.value[].Supervisor | string, nullable | no | The supervisor’s name. |
200.value[].Supervisor_ID | string (uuid), nullable | no | The supervisor’s Lacroo id. |
200.value[].Supplier | string, nullable | no | The company the worker came through. |
200.value[].Trainee | string, nullable | no | The worker’s answer on this project. |
200.value[].Year_Of_Commencement | string, nullable | no | The worker’s answer on this project. |
200.value[]._id | string | no | The Core workforce-log id, or the Lacroo sign-on id. |
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.
Count workforce log rows (OData)
GET /odata/v4/workforce_log_v1/$count
beta since 2026-09-28
Group: Workforce & sign-ons
Custom access scope: reports:read
How many workforce log rows match the $filter, as plain text. Needs the prestarts:read scope as well.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
$filter | query | string | no | An OData filter on the filterable properties. |
Response
| Field | Type | Required | Notes |
|---|---|---|---|
200.* | not JSON |
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.