Download OpenAPI specification:
This document describes the Schemas used for the various use cases in SGBuildex.
For the full API specifications please CLICK HERE.
Look for the Use Case you are using on the left menu
Check the API you are using to see if you need payload
or parameters
.
The following APIs use payload
:
/data/push
/data/store
/data/receive
The following APIs use parameters
:
/data/pull
/data/forward
/data/provide
For payload
, look under the (Payload) section in the use case;
for parameters
, look under the (Parameters) section in the use case.
Look for the Data Element you require under the appropriate Payload/Parameter section, and find the sample JSON format on the panel on the right-hand side.
Copy the sample JSON format and insert it into the relevant payload
or
parameters
attribute in your API request/response, along with the
appropriate values in the JSON.
For /data/push/lift_datahub
:
You would take the sample JSON from Lift Datahub.
Sample JSON payload
:
{
"report_id": "RMD-20250324-001",
"ptolift_id": "PTO-123456789",
"event_start_dt": "2025-03-24T10:15:00Z",
"event_type": 3,
"event_end_dt": "2025-03-24T11:30:00Z",
"event_lift_system": 18,
"event_desc": "Other lift component malfunctioned.",
"action_type": 2,
"action_type_desc": "Adjusted the faulty module.",
"lift_part_replaced_desc": "Sensor calibration unit",
"personnel_dets_id": "SXXXX123A",
"visit_type": 1,
"fault_type": 2,
"comments_desc": "Resolved after second visit"
}
Final API request body would look something like this:
{
"participants": [
{
"id": "string",
"name": "string",
"meta": {
"data_ref_id": "string"
}
}
],
"payload": [
{
"report_id": "string",
"ptolift_id": "string",
"event_start_dt": "2019-08-24T14:15:22Z",
"event_type": 1,
"event_end_dt": "2019-08-24T14:15:22Z",
"event_lift_system": 1,
"event_desc": "string",
"action_type": 1,
"action_type_desc": "string",
"lift_part_replaced_desc": "string",
"personnel_dets_id": "stringstr",
"visit_type": 1,
"fault_type": 1,
"comments_desc": "string"
}
],
"on_behalf_of": [
{
"id": "string"
}
]
}
Data Element ID: lift_datahub
Description: Details of monthly lift event submissions by BCA-approved RM&D lift operators.
report_identification_number required | string (Report Identification Number)
|
pto_lift_identification_number required | string (PTO Lift Identification Number)
|
event_start_date_time required | string <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Event Start Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
event_type required | integer <int64> (Event Type) [ 1 .. 6 ] Enum: 1 2 3 4 5 6
|
event_end_date_time | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Event End Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
event_lift_system | integer or null <int64> (Event Lift System) [ 1 .. 18 ] Enum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 null
|
event_description | string or null (Event Description)
|
action_type | integer or null <int64> (Action Type) [ 1 .. 6 ] Enum: 1 2 3 4 5 6 null
|
action_description | string or null (Action Description)
|
lift_part_replaced_description | string or null (Lift Part Replaced Description)
|
person_id_no_partial | string or null (Person ID No (Partial)) = 4 characters ^\d{3}[A-Za-z0-9]$
|
visit_type | integer or null <int64> (Visit Type) [ 1 .. 3 ] Enum: 1 2 3 null
|
fault_type | integer or null <int64> (Fault Type) [ 1 .. 3 ] Enum: 1 2 3 null
|
remarks | string or null (Remarks)
|
{- "report_identification_number": "string",
- "pto_lift_identification_number": "string",
- "event_start_date_time": "2015-01-01T12:00:00+08:00",
- "event_type": 1,
- "event_end_date_time": "2015-01-01T12:00:00+08:00",
- "event_lift_system": 1,
- "event_description": "string",
- "action_type": 1,
- "action_description": "string",
- "lift_part_replaced_description": "string",
- "person_id_no_partial": "stri",
- "visit_type": 1,
- "fault_type": 1,
- "remarks": "string"
}
Data Element ID: ultimate_load_test
Description: Document that reports the details and result of load test performed on test pile, to determine the maximum load capacity of the pile before failure and verify compliance with design requirements.
project_reference_number required | string (Project Reference Number) ^[AE]\d{4}-[A-Za-z0-9]{5}-\d{4}$
|
project_title required | string (Project Title) <= 1000 characters
|
project_location_description required | string (Project Location Description) <= 2000 characters
|
project_main_contractor_company_name required | string (Project Main Contractor Company Name)
|
project_main_contractor_company_unique_entity_number required | string (Project Main Contractor Company Unique Entity Number) [ 9 .. 10 ] characters ^(?:\d{8}[A-Z]|\d{4}\d{5}[A-Z]|[TSR]\d{2}[A-Z...
|
technical_controller_person_name required | string (Technical Controller Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_person_name required | string (Registered Engineer Registered Technical Officer Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_registration_number required | string (Registered Engineer Registered Technical Officer Registration Number) [ 7 .. 8 ] characters ^[A-Za-z0-9-]{7,8}$
|
qualified_person_supervision_person_name required | string (Qualified Person Supervision Person Name) <= 66 characters
|
qualified_person_supervision_registration_number required | string (Qualified Person Supervision Registration Number) <= 4 characters ^\d{4}$
|
qualified_person_geotechnical_person_name | string or null (Qualified Person Geotechnical Person Name) <= 66 characters
|
qualified_person_geotechnical_registration_number | string or null (Qualified Person Geotechnical Registration Number) <= 4 characters ^\d{4}$
|
project_total_ultimate_load_test required | integer <int64> (Project Total Ultimate Load Test)
|
structural_plan_number required | string (Structural Plan Number)
|
pile_reference_number required | string (Pile Reference Number)
|
ultimate_load_test_date required | string <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Ultimate Load Test Date) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
ultimate_load_test_method required | integer <int64> (Ultimate Load Test Method) [ 1 .. 4 ] Enum: 1 2 3 4
|
ultimate_load_test_method_other | string or null (Ultimate Load Test Method Other)
|
pile_diameter required | integer <int64> (Pile Diameter)
|
pile_as_built_length required | number <double> (Pile As Built Length) decimal places <= 3
|
pile_working_load required | integer <int64> (Pile Working Load)
|
pile_head_settlement_1_5_time_working_load required | number <double> (Pile Head Settlement 1.5 Time Working Load) decimal places <= 3
|
pile_head_settlement_2_0_time_working_load required | number <double> (Pile Head Settlement 2.0 Time Working Load) decimal places <= 3
|
maximum_x_time_working_load_before_failure required | number <double> (Maximum X Time Working Load Before Failure) decimal places <= 3
|
pile_head_settlement_x_time_working_load required | number <double> (Pile Head Settlement X Time Working Load) decimal places <= 3
|
ultimate_load_test_result required | integer <int64> (Ultimate Load Test Result) [ 1 .. 4 ] Enum: 1 2 3 4
|
redone_ultimate_load_test required | boolean (Redone Ultimate Load Test)
|
ultimate_load_test_amendment_remarks | string or null (Ultimate Load Test Amendment Remarks)
|
ultimate_load_test_amendment_date | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Ultimate Load Test Amendment Date) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
{- "project_reference_number": "string",
- "project_title": "string",
- "project_location_description": "string",
- "project_main_contractor_company_name": "string",
- "project_main_contractor_company_unique_entity_number": "stringstr",
- "technical_controller_person_name": "string",
- "registered_engineer_registered_technical_officer_person_name": "string",
- "registered_engineer_registered_technical_officer_registration_number": "strings",
- "qualified_person_supervision_person_name": "string",
- "qualified_person_supervision_registration_number": "stri",
- "qualified_person_geotechnical_person_name": "string",
- "qualified_person_geotechnical_registration_number": "stri",
- "project_total_ultimate_load_test": 0,
- "structural_plan_number": "string",
- "pile_reference_number": "string",
- "ultimate_load_test_date": "2015-01-01T12:00:00+08:00",
- "ultimate_load_test_method": 1,
- "ultimate_load_test_method_other": "string",
- "pile_diameter": 0,
- "pile_as_built_length": 0.1,
- "pile_working_load": 0,
- "pile_head_settlement_1_5_time_working_load": 0.1,
- "pile_head_settlement_2_0_time_working_load": 0.1,
- "maximum_x_time_working_load_before_failure": 0.1,
- "pile_head_settlement_x_time_working_load": 0.1,
- "ultimate_load_test_result": 1,
- "redone_ultimate_load_test": true,
- "ultimate_load_test_amendment_remarks": "string",
- "ultimate_load_test_amendment_date": "2015-01-01T12:00:00+08:00"
}
Data Element ID: working_load_test
Description: Document that reports the details and result of load test performed on working pile, to verify its ability to support the intended load and compliance with design requirements.
project_reference_number required | string (Project Reference Number) ^[AE]\d{4}-[A-Za-z0-9]{5}-\d{4}$
|
project_title required | string (Project Title) <= 1000 characters
|
project_location_description required | string (Project Location Description) <= 2000 characters
|
project_main_contractor_company_name required | string (Project Main Contractor Company Name)
|
project_main_contractor_company_unique_entity_number required | string (Project Main Contractor Company Unique Entity Number) [ 9 .. 10 ] characters ^(?:\d{8}[A-Z]|\d{4}\d{5}[A-Z]|[TSR]\d{2}[A-Z...
|
technical_controller_person_name required | string (Technical Controller Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_person_name required | string (Registered Engineer Registered Technical Officer Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_registration_number required | string (Registered Engineer Registered Technical Officer Registration Number) [ 7 .. 8 ] characters ^[A-Za-z0-9-]{7,8}$
|
qualified_person_supervision_person_name required | string (Qualified Person Supervision Person Name) <= 66 characters
|
qualified_person_supervision_registration_number required | string (Qualified Person Supervision Registration Number) <= 4 characters ^\d{4}$
|
qualified_person_geotechnical_person_name | string or null (Qualified Person Geotechnical Person Name) <= 66 characters
|
qualified_person_geotechnical_registration_number | string or null (Qualified Person Geotechnical Registration Number) <= 4 characters ^\d{4}$
|
project_total_working_load_test required | integer <int64> (Project Total Working Load Test)
|
structural_plan_number required | string (Structural Plan Number)
|
pile_reference_number required | string (Pile Reference Number)
|
working_load_test_date required | string <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Working Load Test Date) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
working_load_test_method required | integer <int64> (Working Load Test Method) [ 1 .. 4 ] Enum: 1 2 3 4
|
working_load_test_method_other | string or null (Working Load Test Method Other)
|
pile_diameter required | integer <int64> (Pile Diameter)
|
pile_as_built_length required | number <double> (Pile As Built Length) decimal places <= 3
|
pile_working_load required | integer <int64> (Pile Working Load)
|
pile_head_settlement_1_5_time_working_load required | number <double> (Pile Head Settlement 1.5 Time Working Load) decimal places <= 3
|
pile_head_settlement_2_0_time_working_load required | number <double> (Pile Head Settlement 2.0 Time Working Load) decimal places <= 3
|
working_load_test_result required | integer <int64> (Working Load Test Result) [ 1 .. 4 ] Enum: 1 2 3 4
|
additional_working_load_test required | boolean (Additional Working Load Test)
|
working_load_test_amendment_remarks | string or null (Working Load Test Amendment Remarks)
|
working_load_test_amendment_date | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Working Load Test Amendment Date) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
{- "project_reference_number": "string",
- "project_title": "string",
- "project_location_description": "string",
- "project_main_contractor_company_name": "string",
- "project_main_contractor_company_unique_entity_number": "stringstr",
- "technical_controller_person_name": "string",
- "registered_engineer_registered_technical_officer_person_name": "string",
- "registered_engineer_registered_technical_officer_registration_number": "strings",
- "qualified_person_supervision_person_name": "string",
- "qualified_person_supervision_registration_number": "stri",
- "qualified_person_geotechnical_person_name": "string",
- "qualified_person_geotechnical_registration_number": "stri",
- "project_total_working_load_test": 0,
- "structural_plan_number": "string",
- "pile_reference_number": "string",
- "working_load_test_date": "2015-01-01T12:00:00+08:00",
- "working_load_test_method": 1,
- "working_load_test_method_other": "string",
- "pile_diameter": 0,
- "pile_as_built_length": 0.1,
- "pile_working_load": 0,
- "pile_head_settlement_1_5_time_working_load": 0.1,
- "pile_head_settlement_2_0_time_working_load": 0.1,
- "working_load_test_result": 1,
- "additional_working_load_test": true,
- "working_load_test_amendment_remarks": "string",
- "working_load_test_amendment_date": "2015-01-01T12:00:00+08:00"
}
Data Element ID: piling_installation_record
Desciption: Document that records details of piling installation process, its compliance with specifications and serves reference for inspections.
project_reference_number required | string (Project Reference Number ) = 16 characters ^[AE]\d{4}-[A-Za-z0-9]{5}-\d{4}$
|
project_title required | string (Project Title) <= 1000 characters
|
project_location_description required | string (Project Location Description) <= 2000 characters
|
project_main_contractor_company_name required | string (Project Main Contractor Company Name)
|
project_main_contractor_company_unique_entity_number required | string (Project Main Contractor Company Unique Entity Number) [ 9 .. 10 ] characters ^(?:\d{8}[A-Z]|\d{4}\d{5}[A-Z]|[TSR]\d{2}[A-Z...
|
project_piling_contractor_company_name required | string (Project Piling Contractor Company Name)
|
project_piling_contractor_company_unique_entity_number required | string (Project Piling Contractor Company Unique Entity Number) [ 9 .. 10 ] characters ^(?:\d{8}[A-Z]|\d{4}\d{5}[A-Z]|[TSR]\d{2}[A-Z...
|
project_land_surveyor_company_name | string or null (Project Land Surveyor Company Name)
|
project_land_surveyor_company_unique_entity_number | string or null (Project Land Surveyor Company Unique Entity Number) [ 9 .. 10 ] characters ^(?:\d{8}[A-Z]|\d{4}\d{5}[A-Z]|[TSR]\d{2}[A-Z...
|
technical_controller_person_name required | string (Technical Controller Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_person_name required | string (Registered Engineer Registered Technical Officer Person Name) <= 66 characters
|
registered_engineer_registered_technical_officer_registration_number required | string (Registered Engineer Registered Technical Officer Registration Number) [ 7 .. 8 ] characters ^[A-Za-z0-9-]{7,8}$
|
qualified_person_supervision_person_name required | string (Qualified Person Supervision Person Name) <= 66 characters
|
qualified_person_supervision_registration_number required | string (Qualified Person Supervision Registration Number) <= 4 characters ^\d{4}$
|
qualified_person_geotechnical_person_name | string or null (Qualified Person Geotechnical Person Name) <= 66 characters
|
qualified_person_geotechnical_registration_number | string or null (QP (Geotechnical) PE Registration Number) <= 4 characters ^\d{4}$
|
land_surveyor_person_name | string or null (Land Surveyor Person Name) <= 66 characters
|
land_surveyor_registration_number | integer or null <int64> (Land Surveyor Registration Number) <= 999
|
project_total_piles required | integer <int64> (Project Total Piles)
|
structural_plan_number required | string (Structural Plan Number)
|
pile_reference_number required | string (Pile Reference Number)
|
piling_installation_date required | string <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Piling Installation Date) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
project_piling_work_type required | integer <int64> (Project Piling Work Type) [ 1 .. 12 ] Enum: 1 2 3 4 5 6 7 8 9 10 11 12
|
project_piling_work_type_other | string or null (Project Piling Work Type Other)
|
project_piling_foundation_type_other | string or null (Project Piling Foundation Type Other)
|
pile_x_easting required | number <double> (Pile X Easting) decimal places <= 3
|
pile_y_northing required | number <double> (Pile Y Northing) decimal places <= 3
|
pile_cut_off_level required | number <double> (Pile Cut Off Level) decimal places <= 3
|
pile_toe_level required | number <double> (Pile Toe Level) decimal places <= 3
|
pile_diameter_longest_length required | integer <int64> (Pile Diameter Longest Length)
|
pile_width | integer or null <int64> (Pile Width)
|
pile_design_penetration_length required | number <double> (Pile Design Penetration Length) decimal places <= 3
|
pile_as_built_length required | number <double> (Pile As Built Length) decimal places <= 3
|
pile_design_socketing_length | number or null <double> (Pile Design Socketing Length) decimal places <= 3
|
pile_actual_socketing_length | number or null <double> (Pile Actual Socketing Length) decimal places <= 3
|
pile_design_embedment_length | number or null <double> (Pile Design Embedment Length) decimal places <= 3
|
pile_actual_embedment_length | number or null <double> (Pile Actual Embedment Length) decimal places <= 3
|
pile_local_x_eccentricity | integer or null <int64> (Pile Local X Eccentricity)
|
pile_local_y_eccentricity | integer or null <int64> (Pile Local Y Eccentricity)
|
pile_zone_bore_hole_number | string or null (Pile Zone Borehole Number)
|
pile_boring_start_date | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Pile Boring Start Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
pile_boring_complete_date | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Pile Boring Complete Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
pile_verticality | integer or null <int64> (Pile Verticality)
|
pile_reinforcement_bar_number_size | string or null (Pile Reinforcement Bar Number Size)
|
pile_reinforcement_bar_length | number or null <double> (Pile Reinforcement Bar Length) decimal places <= 3
|
pile_reinforcement_link_size_spacing | string or null (Pile Reinforcement Link Size Spacing)
|
pile_spacer_size | integer or null <int64> (Pile Spacer Size)
|
pile_spacer_spacing | integer or null <int64> (Pile Spacer Spacing)
|
pile_concreting_method | integer or null <int64> (Pile Concreting Method) [ 1 .. 3 ] Enum: 1 2 3 null
|
pile_concreting_method_other | string or null (Pile Concreting Method Other)
|
pile_concrete_grade required | string (Pile Concrete Grade)
|
pile_toe_cleaned | boolean or null (Pile Toe Cleaned)
|
pile_concreting_start_date_time | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Pile Concreting Start Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
pile_concreting_complete_date_time | string or null <custom:date-time:YYYY-MM-DDTHH:mm:ssZ> (Pile Concreting Complete Date Time) ^(?:[0-9]{4})-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12...
|
pile_calculated_concrete_volume | number or null <double> (Pile Calculated Concrete Volume) decimal places <= 3
|
pile_actual_concrete_volume | number or null <double> (Pile Actual Concrete Volume) decimal places <= 3
|
project_pile_concrete_supplier_company_name | string or null (Project Pile Concrete Supplier Company Name)
|
competent_soil_standard_penetration_test_requirement | integer or null <int64> (Competent Soil Standard Penetration Test Requirement)
|
competent_soil_depth | number or null <double> (Competent Soil Depth) decimal places <= 3
|
{- "project_reference_number": "stringstringstri",
- "project_title": "string",
- "project_location_description": "string",
- "project_main_contractor_company_name": "string",
- "project_main_contractor_company_unique_entity_number": "stringstr",
- "project_piling_contractor_company_name": "string",
- "project_piling_contractor_company_unique_entity_number": "stringstr",
- "project_land_surveyor_company_name": "string",
- "project_land_surveyor_company_unique_entity_number": "stringstr",
- "technical_controller_person_name": "string",
- "registered_engineer_registered_technical_officer_person_name": "string",
- "registered_engineer_registered_technical_officer_registration_number": "strings",
- "qualified_person_supervision_person_name": "string",
- "qualified_person_supervision_registration_number": "stri",
- "qualified_person_geotechnical_person_name": "string",
- "qualified_person_geotechnical_registration_number": "stri",
- "land_surveyor_person_name": "string",
- "land_surveyor_registration_number": 999,
- "project_total_piles": 0,
- "structural_plan_number": "string",
- "pile_reference_number": "string",
- "piling_installation_date": "2015-01-01T12:00:00+08:00",
- "project_piling_work_type": 1,
- "project_piling_work_type_other": "string",
- "project_piling_foundation_type_other": "string",
- "pile_x_easting": 0.1,
- "pile_y_northing": 0.1,
- "pile_cut_off_level": 0.1,
- "pile_toe_level": 0.1,
- "pile_diameter_longest_length": 0,
- "pile_width": 0,
- "pile_design_penetration_length": 0.1,
- "pile_as_built_length": 0.1,
- "pile_design_socketing_length": 0.1,
- "pile_actual_socketing_length": 0.1,
- "pile_design_embedment_length": 0.1,
- "pile_actual_embedment_length": 0.1,
- "pile_local_x_eccentricity": 0,
- "pile_local_y_eccentricity": 0,
- "pile_zone_bore_hole_number": "string",
- "pile_boring_start_date": "2015-01-01T12:00:00+08:00",
- "pile_boring_complete_date": "2015-01-01T12:00:00+08:00",
- "pile_verticality": 0,
- "pile_reinforcement_bar_number_size": "string",
- "pile_reinforcement_bar_length": 0.1,
- "pile_reinforcement_link_size_spacing": "string",
- "pile_spacer_size": 0,
- "pile_spacer_spacing": 0,
- "pile_concreting_method": 1,
- "pile_concreting_method_other": "string",
- "pile_concrete_grade": "string",
- "pile_toe_cleaned": true,
- "pile_concreting_start_date_time": "2015-01-01T12:00:00+08:00",
- "pile_concreting_complete_date_time": "2015-01-01T12:00:00+08:00",
- "pile_calculated_concrete_volume": 0.1,
- "pile_actual_concrete_volume": 0.1,
- "project_pile_concrete_supplier_company_name": "string",
- "competent_soil_standard_penetration_test_requirement": 0,
- "competent_soil_depth": 0.1
}