### GET Request Example with Accept Header Source: https://developer.hammertechglobal.com/reference/overview Demonstrates how to make a GET request to the HammerTech API, including the mandatory 'accept: application/json' header and authorization. ```curl curl --request GET \ --url [https://au-api.hammertechonline.com/api/v1/Projects](https://au-api.hammertechonline.com/api/v1/Projects) \ --header 'accept: application/json' \ --header 'authorization: Bearer {AUTH TOKEN HERE}' ``` -------------------------------- ### List Bookings (cURL Example) Source: https://developer.hammertechglobal.com/reference/make-your-first-api-call Demonstrates how to list active bookings using a cURL command. It includes the GET method, endpoint, authorization header, and accept header. ```bash curl -X GET "${BASE_URL}/api/v1/Bookings?take=10" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### List Users (cURL Example) Source: https://developer.hammertechglobal.com/reference/make-your-first-api-call Shows how to list portal users with the `includeNotAssigned=true` parameter using cURL. It includes the GET method, endpoint, authorization, and accept headers. ```bash curl -X GET "${BASE_URL}/api/v1/Users?includeNotAssigned=true" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Start Time Information Source: https://developer.hammertechglobal.com/reference/listsitesignins Information related to the start time of an event, including user and device details. ```APIDOC ## Start Time Information ### Description Details regarding the start time, including associated user and device information. ### Properties - **startTime** (string) - StartTime, UTC. Format: date-time - **startTimeSetBySignInDevice** (object) - SignIn device - Short set of fields. - **id** (string) - A unique identifier for this record. Format: uuid - **name** (string) - Device name. Nullable. - **location** (string) - Device location. Nullable. - **startTimeSetByUser** (object) - User record, minimal fieldset. - **id** (string) - A unique identifier for this record. Format: uuid - **fullName** (string) - User's full name. Nullable. - **email** (string) - Email address. Nullable. - **employerProfile** (object) - Helper class that has only one property - Id. - **id** (string) - Identifier of the object. Format: uuid - **startTimePictureStoredFile** (object) - Information about a stored file related to the start time picture. - **id** (string) - A unique identifier for this record. Format: uuid - **name** (string) - Filename. Nullable. - **mimeType** (string) - Supported mimetypes for images and office documents. Nullable. - **contentUrl** (string) - Temporary url where from the content can be downloaded. Nullable. - **thumbnailUrl** (string) - URL for the thumbnail. Nullable. ``` -------------------------------- ### GET /websites/developer_hammertechglobal_reference/settings Source: https://developer.hammertechglobal.com/reference/getsetting Retrieves detailed information for a specific setting by its unique identifier. ```APIDOC ## GET /websites/developer_hammertechglobal_reference/settings ### Description Returns detailed information for a specific setting by its unique identifier. ### Method GET ### Endpoint /websites/developer_hammertechglobal_reference/settings ### Parameters #### Query Parameters - **setting_id** (string) - Required - The unique identifier of the setting to retrieve. ### Response #### Success Response (200) - **setting_id** (string) - The unique identifier of the setting. - **name** (string) - The name of the setting. - **value** (string) - The value of the setting. #### Response Example { "setting_id": "setting-123", "name": "site_title", "value": "HammerTech Global" } ``` -------------------------------- ### GET /api/v1/Settings/{id} Source: https://developer.hammertechglobal.com/reference/getsetting Retrieves detailed information for a specific setting using its unique identifier. ```APIDOC ## GET /api/v1/Settings/{id} ### Description Returns detailed information for a specific setting by its unique identifier. ### Method GET ### Endpoint /api/v1/Settings/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the required Setting (UUID format). ### Request Example ```json {} ``` ### Response #### Success Response (200) - **id** (string) - A unique identifier for this record (UUID format). - **key** (string) - Setting key (name). - **value** (string) - Setting value. - **project** (object) - Short fieldset for project record. - **id** (string) - A unique identifier for this record (UUID format). - **name** (string) - Project name. - **isInactive** (boolean) - True if the project is inactive. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "key": "site_contact_email", "value": "site.manager@example.com", "project": { "id": "f0e9d8c7-b6a5-4321-0987-654321fedcba", "name": "Westwood Project", "isInactive": false } } ``` #### Error Responses - **400** - Bad Request - The request we received was invalid, please check for missing headers and refer to the examples. - **401** - Unauthorized - You did not specify a bearer token or it was invalid, please check the response for further details. - **403** - Forbidden - You have a valid bearer token, however it does not have access to the item you requested. Ensure that you are using the correct token. - **404** - Not Found - The item you requested does not exist or could not be loaded, check that you are passing the correct Id to the correct endpoint. - **500** - Internal Server Error - An internal error occured processing your request, please check the request body for further details. ``` -------------------------------- ### EquipmentInduction Source: https://developer.hammertechglobal.com/reference/listprojectptps Details about equipment inductions. ```APIDOC ## GET /api/equipmentInductions ### Description Retrieves a list of equipment inductions. ### Method GET ### Endpoint /api/equipmentInductions ### Parameters #### Query Parameters - **id** (string) - Optional - Filter by Induction ID. - **equipmentId** (string) - Optional - Filter by the ID of the associated equipment. - **workerId** (string) - Optional - Filter by the ID of the worker who completed the induction. ### Response #### Success Response (200) - **id** (string) - Unique identifier for the induction. - **updatedDate** (string) - The date the induction was last updated (ISO 8601 format). #### Response Example { "id": "b1c2d3e4-f5a6-7890-abcd-ef0123456789", "updatedDate": "2023-10-27T10:30:00Z" } ``` -------------------------------- ### GET /reference/listsettings Source: https://developer.hammertechglobal.com/reference/index Lists all available settings. This endpoint provides a comprehensive list of all configurable settings within the system. ```APIDOC ## GET /reference/listsettings ### Description Lists all available settings. This endpoint provides a comprehensive list of all configurable settings within the system. ### Method GET ### Endpoint /reference/listsettings ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **settings**: (array of objects) - A list of setting objects, each with `id`, `name`, and `value` properties. #### Response Example ```json { "settings": [ { "id": "setting_1", "name": "Notification Interval", "value": "24h" }, { "id": "setting_2", "name": "Default Theme", "value": "dark" } ] } ``` ``` -------------------------------- ### GET /reference/listemployerprofilesmetadata Source: https://developer.hammertechglobal.com/reference/index Retrieves metadata for all employer profiles. This endpoint is useful for getting a summary or count of employers. ```APIDOC ## GET /reference/listemployerprofilesmetadata ### Description Retrieves metadata for all employer profiles. This endpoint is useful for getting a summary or count of employers. ### Method GET ### Endpoint /reference/listemployerprofilesmetadata ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **metadata** (array) - An array of objects, each containing metadata for an employer profile. #### Response Example ```json [ { "employer_id": "emp_123", "name": "Example Corp" }, { "employer_id": "emp_456", "name": "Another Company" } ] ``` ``` -------------------------------- ### POST /api/projects Source: https://developer.hammertechglobal.com/reference/index Creates a new project within the HammerTech system. This endpoint allows for the initialization of new project entries. ```APIDOC ## POST /api/projects ### Description Creates a new project within the HammerTech system. This endpoint allows for the initialization of new project entries. ### Method POST ### Endpoint /api/projects ### Parameters #### Request Body - **name** (string) - Required - The name of the project. - **projectNumber** (string) - Required - The unique identifier for the project. - **companyId** (string) - Required - The ID of the company the project belongs to. ### Request Example ```json { "name": "New Project Alpha", "projectNumber": "NP001", "companyId": "comp-123" } ``` ### Response #### Success Response (201) - **projectId** (string) - The ID of the newly created project. #### Response Example ```json { "projectId": "proj-abc" } ``` #### Error Response (400) - **error** (string) - Description of the error (e.g., "Project number already exists"). ``` -------------------------------- ### GET Request Headers Source: https://developer.hammertechglobal.com/reference/overview GET requests to the HammerTech API require specific headers for authentication and content negotiation. ```APIDOC ## GET Request Headers ### Description GET requests must include the `accept` and `authorization` headers. ### Headers - **accept**: `application/json` - **authorization**: `Bearer {AUTH TOKEN HERE}` ### Example ```bash curl --request GET \ --url [https://au-api.hammertechonline.com/api/v1/Projects](https://au-api.hammertechonline.com/api/v1/Projects) \ --header 'accept: application/json' \ --header 'authorization: Bearer {AUTH TOKEN HERE}' ``` ``` -------------------------------- ### Reference API Overview Source: https://developer.hammertechglobal.com/reference/listemployers This section provides an overview of the Reference API, including its base path, security schemes, and common response codes. ```APIDOC ## Reference API ### Description The Reference API allows interaction with reference data, primarily focused on employer-related operations. It utilizes JWT-based Bearer token authentication. ### Base Path `/websites/developer_hammertechglobal_reference` ### Security Scheme - **Bearer**: JWT Authorization header using the Bearer scheme. Example: `Authorization: Bearer {token}` ### Common Error Responses - **400 Bad Request**: The request was invalid. Check for missing headers. - **401 Unauthorized**: Authentication credentials were missing or invalid. - **403 Forbidden**: You don't have permission to access this resource. - **500 Internal Server Error**: An error occurred while processing the request. ``` -------------------------------- ### GET /reference/getsetting Source: https://developer.hammertechglobal.com/reference/index Retrieves a specific setting by its ID. Use this endpoint to get the value of a particular configuration setting. ```APIDOC ## GET /reference/getsetting ### Description Retrieves a specific setting by its ID. Use this endpoint to get the value of a particular configuration setting. ### Method GET ### Endpoint /reference/getsetting ### Parameters #### Path Parameters None #### Query Parameters - **settingId** (string) - Required - The unique identifier of the setting to retrieve. #### Request Body None ### Request Example ``` GET /reference/getsetting?settingId=setting_1 ``` ### Response #### Success Response (200) - **setting**: (object) - An object containing the setting's `id`, `name`, and `value`. #### Response Example ```json { "setting": { "id": "setting_1", "name": "Notification Interval", "value": "24h" } } ``` ``` -------------------------------- ### Get Inspection Version Information Source: https://developer.hammertechglobal.com/reference/getissueversioninfo Retrieves version information for a specific inspection using its unique identifier. ```APIDOC ## GET /api/v1/Issues/{id}/versioninfo ### Description Version Information for an Inspection with ID ### Method GET ### Endpoint /api/v1/Issues/{id}/versioninfo ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the required Inspection ### Request Example (No request body for GET request) ### Response #### Success Response (200) - **id** (string) - Object Id - **serverTime** (string) - Current Server Time - UTC - **lastModifiedDate** (string) - Last modified datetime for this object and all nested ones - UTC Defines GetList(midifiedSince) behaviour - **clientModifiedDate** (string) - Last modified datetime for this object - when client actually clicked SAVE. Defines UPDATE requests racing confitions #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "serverTime": "2023-10-27T10:00:00Z", "lastModifiedDate": "2023-10-27T09:30:00Z", "clientModifiedDate": "2023-10-27T09:29:55Z" } ``` ``` -------------------------------- ### Project Dates and Status Source: https://developer.hammertechglobal.com/reference/getpermit Provides information on project start date, welcome email status, historical status, and update/deactivation dates. ```APIDOC ## GET /api/project/details ### Description Retrieves project-specific date and status information, including start date, welcome email sent date, historical status, and update/deactivation timestamps. ### Method GET ### Endpoint /api/project/details ### Parameters #### Query Parameters - **projectId** (string) - Required - The unique identifier for the project. ### Response #### Success Response (200) - **updatedDate** (string) - When this record or related ones were last updated (ISO8601 Format - UTC Timezone). - **deactivatedDate** (string) - The date this project was deactivated (ISO8601 Format - UTC Timezone). - **startDate** (string) - The project start date (ISO8601 Format - Project Local Time). - **welcomeEmailSentDate** (string) - The date the welcome email was sent (ISO8601 Format - Project Local Time). - **isHistoric** (boolean) - False for up-to-date records. #### Response Example ```json { "updatedDate": "2023-10-27T10:00:00Z", "deactivatedDate": null, "startDate": "2023-01-15T09:00:00+01:00", "welcomeEmailSentDate": "2023-01-10T09:00:00+01:00", "isHistoric": false } ``` ``` -------------------------------- ### POST /equipment-inductions Source: https://developer.hammertechglobal.com/reference/createequipmentinduction Creates a new equipment induction with provided details, including checklist answers and actions. ```APIDOC ## POST /equipment-inductions ### Description Creates a new equipment induction. This endpoint allows you to submit comprehensive details about an equipment induction, including answers to specific checklist questions and the desired action to be taken on the induction. ### Method POST ### Endpoint /equipment-inductions ### Parameters #### Request Body - **swmsAssociatedWithEquipment** (array) - Optional - List of the Identifier of Swms Associated with the Equipment - **checklistAnswerSetRequest** (array) - Optional - The Answer of the Induction Checklist Questions. Each item in the array should include: - **answer** (string) - Required - Status for Induction Checklist Items. Must be one of: NotSpecified, Yes, NotApplicable, No. - **questionText** (string) - Optional - The Text of the Equipment Induction Checklist Question. - **additionalInformation** (string) - Optional - The Additional Information of the Equipment Induction Checklist Question. - **inductionAction** (string) - Required - The Action for the Equipment Induction. Must be one of: Draft, Reject, SubmitForApproval, Accept ### Request Example ```json { "swmsAssociatedWithEquipment": ["uuid-1", "uuid-2"], "checklistAnswerSetRequest": [ { "answer": "Yes", "questionText": "Is the equipment safety checked?", "additionalInformation": "All checks passed." }, { "answer": "No", "questionText": "Is the manual available?", "additionalInformation": "Manual is missing." } ], "inductionAction": "SubmitForApproval" } ``` ### Response #### Success Response (200) - **isSuccess** (boolean) - True if request was processed successfully - **httpStatusCode** (integer) - Http response status code - **messageText** (string) - Status message - **createdEntityId** (string) - Id of the object that was created or updated - **xRequestId** (string) - The unique identifier for tracking a particular request #### Response Example ```json { "isSuccess": true, "httpStatusCode": 200, "messageText": "Equipment induction created successfully.", "createdEntityId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "xRequestId": "req-abc-123" } ``` #### Error Responses - **400** - BadRequest - **401** - Unauthorized - **403** - Forbidden - **409** - Conflict - **500** - Internal Server error ``` -------------------------------- ### Get Inspection Version Info via OpenAPI Source: https://developer.hammertechglobal.com/reference/getissueversioninfo This OpenAPI definition describes a GET request to retrieve the version information for a specific inspection. It requires the inspection's unique ID as a path parameter. The response includes details like server time and modification dates. ```json { "openapi": "3.0.1", "info": { "title": "Hammertech Public API", "description": "This API enables integration with the Hammertech construction safety and compliance platform.\nIt allows external systems to access, create, and manage safety data including personnel,\nincidents, permits, inspections, bookings, and more.", "contact": { "name": "Hammertech Support", "url": "https://www.hammertech.com", "email": "apisupport@hammertech.com" }, "version": "v1" }, "servers": [ { "url": "https://us-api.hammertechonline.com", "description": "Tenants located in North America" }, { "url": "https://au-api.hammertechonline.com", "description": "Tenants located in Asia and Oceania" }, { "url": "https://eu-api.hammertechonline.com", "description": "Tenants located in United Kingdom" } ], "paths": { "/api/v1/Issues/{id}/versioninfo": { "get": { "tags": [ "Issues" ], "summary": "Get Inspection Version", "description": "Version Information for an Inspection with ID", "operationId": "getIssueVersioninfo", "parameters": [ { "name": "id", "in": "path", "description": "The unique identifier of the required Inspection", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Object Id", "format": "uuid" }, "serverTime": { "type": "string", "description": "Current Server Time - UTC", "format": "date-time" }, "lastModifiedDate": { "type": "string", "description": "Last modified datetime for this object and all nested ones - UTC\nDefines GetList(midifiedSince) behaviour", "format": "date-time" }, "clientModifiedDate": { "type": "string", "description": "Last modified datetime for this object - when client actually clicked SAVE.\nDefines UPDATE requests racing confitions", "format": "date-time" } }, "additionalProperties": false, "x-readme-ref-name": "ObjectVersionInfo" } } } }, "400": { "description": "BadRequest" }, "401": { "description": "Unauthorized" }, "403": { "description": "Forbidden" }, "404": { "description": "NotFound" }, "500": { "description": "Internal Server error" } } } } }, "components": { "securitySchemes": { "Bearer": { "type": "http", "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", "scheme": "bearer", "bearerFormat": "jwt" } } }, "security": [ { "Bearer": [] } ], "tags": [ { "name": "Issues", "description": "Issues operations" } ] } ``` -------------------------------- ### Set Base URL Environment Variable Source: https://developer.hammertechglobal.com/reference/make-your-first-api-call Sets the BASE_URL environment variable for HammerTech API calls. This is an optional convenience for scripting API requests. ```bash export BASE_URL=https://au-api.hammertechonline.com ``` -------------------------------- ### GET /branches/1.1.1/reference/getinspectiontype Source: https://developer.hammertechglobal.com/reference/index Retrieves details for a specific inspection type. Use this endpoint to get information about a particular type of inspection. ```APIDOC ## GET /branches/1.1.1/reference/getinspectiontype ### Description Retrieves details for a specific inspection type. Use this endpoint to get information about a particular type of inspection. ### Method GET ### Endpoint /branches/1.1.1/reference/getinspectiontype ### Parameters #### Query Parameters - **id** (string) - Required - The ID of the inspection type to retrieve. ### Response #### Success Response (200) - **id** (string) - The ID of the inspection type. - **name** (string) - The name of the inspection type. #### Response Example ```json { "id": "type1", "name": "Safety Inspection" } ``` ``` -------------------------------- ### GET /reference/getbookingzone Source: https://developer.hammertechglobal.com/reference/index Retrieves the details of a specific booking zone. Use this endpoint to get information about a particular booking zone. ```APIDOC ## GET /reference/getbookingzone ### Description Retrieves the details of a specific booking zone. ### Method GET ### Endpoint /reference/getbookingzone ### Parameters #### Query Parameters - **id** (string) - Required - The unique identifier of the booking zone to retrieve. ### Response #### Success Response (200) - **bookingZone** (object) - An object containing the details of the booking zone. - **id** (string) - The unique identifier of the booking zone. - **name** (string) - The name of the booking zone. #### Response Example ```json { "bookingZone": { "id": "zone_abc", "name": "North Zone" } } ``` ``` -------------------------------- ### GET /api/v1/Users Source: https://developer.hammertechglobal.com/reference/make-your-first-api-call Retrieves a list of users in the HammerTech portal. Supports filtering by project assignment and inclusion of users not assigned to any project. ```APIDOC ## GET /api/v1/Users ### Description Retrieves a list of users in the HammerTech portal. Supports pagination and filters. ### Method GET ### Endpoint /api/v1/Users ### Parameters #### Query Parameters - **projectId** (uuid) - Required - Filters users by project assignment. - **modifiedSince** (ISO 8601 datetime) - Optional - Filters users modified since a specific date and time. - **includeNotAssigned** (boolean) - Optional - Includes users who are not assigned to any project. ### Request Example ```bash curl -X GET "${BASE_URL}/api/v1/Users?includeNotAssigned=true" -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json" ``` ### Response #### Success Response (200) - **UserDescriptor** (array) - An array of user objects. Refer to the API reference for the full schema details of UserDescriptor. ``` -------------------------------- ### GET /api/v1/Bookings Source: https://developer.hammertechglobal.com/reference/make-your-first-api-call Retrieves a list of active bookings for the authenticated user. Supports filtering by project and limiting the number of records returned. ```APIDOC ## GET /api/v1/Bookings ### Description Retrieves a list of active bookings for the authenticated user. ### Method GET ### Endpoint /api/v1/Bookings ### Parameters #### Query Parameters - **take** (integer) - Required - Maximum number of records to return. - **projectId** (uuid) - Optional - Filters bookings by a specific project. ### Request Example ```bash curl -X GET "${BASE_URL}/api/v1/Bookings?take=10" -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json" ``` ### Response #### Success Response (200) - **BookingDescriptor** (array) - An array of booking objects, each containing fields like `id`, `dateAdded`, `location`, `timeStarted`, `timeCompleted`, `isApproved`, and `project`. #### Response Example ```json [ { "id": "11111111-1111-1111-1111-111111111111", "dateAdded": "2025-06-15T08:00:00Z", "location": "Site Office", "timeStarted": "2025-06-15T08:00:00Z", "timeCompleted": "2025-06-15T17:00:00Z", "isApproved": false, "project": { "id": "aaaa1111-aaaa-1111-aaaa-111111111111", "name": "Project X" } } ] ``` ``` -------------------------------- ### Get Issue Category by ID Source: https://developer.hammertechglobal.com/reference/listissuecategories Retrieves a specific issue category by its ID. Use this endpoint to get details for a particular category. ```APIDOC ## GET /api/issuecategories/{id} ### Description Retrieves a specific issue category by its ID. ### Method GET ### Endpoint /api/issuecategories/{id} ### Parameters #### Path Parameters - **id** (integer) - Required - The ID of the issue category to retrieve. ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **id** (integer) - The unique identifier for the issue category. - **name** (string) - The name of the issue category. - **isArchived** (boolean) - Indicates if the issue category is archived. #### Response Example ```json { "id": 1, "name": "Electrical", "isArchived": false } ``` ``` -------------------------------- ### GET /api/v1/Projects/{projectId}/ptps/config Source: https://developer.hammertechglobal.com/reference/getprojectptpconfig Retrieves the top-level configuration information for PTPs (Permit to Proceed) within a specific project. ```APIDOC ## GET /api/v1/Projects/{projectId}/ptps/config ### Description Returns Top-level configuration information about PTPs. ### Method GET ### Endpoint /api/v1/Projects/{projectId}/ptps/config ### Parameters #### Path Parameters - **projectId** (string) - Required - The identifier of the Project where to search for the PtpMetadata ### Request Example (No request body for GET request) ### Response #### Success Response (200) - **hasSubForms** (boolean) - PTP CustomFieldForm has Tabular or simple Subforms #### Response Example ```json { "hasSubForms": true } ``` ``` -------------------------------- ### GET /EquipmentTypes/{id} Source: https://developer.hammertechglobal.com/reference/getequipmenttype Retrieves a specific equipment type by its ID. Use this endpoint to get detailed information about a single equipment type. ```APIDOC ## GET /EquipmentTypes/{id} ### Description Retrieves a specific equipment type by its ID. Use this endpoint to get detailed information about a single equipment type. ### Method GET ### Endpoint /EquipmentTypes/{id} ### Parameters #### Path Parameters - **id** (uuid) - Required - The unique identifier of the equipment type to retrieve. ### Request Example ``` GET /EquipmentTypes/a1b2c3d4-e5f6-7890-1234-567890abcdef HTTP/1.1 Host: api.example.com Authorization: Bearer YOUR_ACCESS_TOKEN ``` ### Response #### Success Response (200) - **id** (uuid) - A unique identifier for this record. - **name** (string) - Name of equipment category. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "name": "Hand Tools" } ``` #### Error Responses - **400**: Bad Request - The request we received was invalid, please check for missing headers and refer to the examples - **401**: Unauthorized - No valid API key provided - **403**: Forbidden - The API key doesn't have permissions to perform the request - **404**: Not Found - The requested equipment type was not found ``` -------------------------------- ### Retrieve Setting Information Source: https://developer.hammertechglobal.com/reference/getsetting Fetches detailed information for a specific setting using its unique identifier. This endpoint is part of the Settings operations and requires a Bearer token for authentication. It returns a JSON object containing the setting's ID, key, value, and associated project details. ```json { "openapi": "3.0.1", "info": { "title": "Hammertech Public API", "description": "This API enables integration with the HammerTech construction safety and compliance platform.\nIt allows external systems to access, create, and manage safety data including personnel,\nincidents, permits, inspections, bookings, and more.", "contact": { "name": "Hammertech Support", "url": "https://www.hammertech.com", "email": "apisupport@hammertech.com" }, "version": "v1" }, "servers": [ { "url": "https://us-api.hammertechonline.com", "description": "Tenants located in North America" }, { "url": "https://au-api.hammertechonline.com", "description": "Tenants located in Asia and Oceania" }, { "url": "https://eu-api.hammertechonline.com", "description": "Tenants located in United Kingdom" } ], "paths": { "/api/v1/Settings/{id}": { "get": { "tags": [ "Settings" ], "summary": "Retrieve Setting", "description": "Returns detailed information for a specific setting by its unique identifier.", "operationId": "getSetting", "parameters": [ { "name": "id", "in": "path", "description": "The unique identifier of the required Setting", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier for this record", "format": "uuid" }, "key": { "type": "string", "description": "Setting key (name)", "nullable": true }, "value": { "type": "string", "description": "Setting value", "nullable": true }, "project": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier for this record", "format": "uuid" }, "name": { "type": "string", "description": "Project name", "nullable": true }, "isInactive": { "type": "boolean", "description": "True if the project is inactive" } }, "additionalProperties": false, "description": "Short fieldset for project record", "x-readme-ref-name": "ProjectDescriptor" } }, "additionalProperties": false, "description": "List element for GET /settings endpoint", "x-readme-ref-name": "Setting" } } } }, "400": { "description": "Bad Request - The request we received was invalid, please check for missing headers and refer to the examples" }, "401": { "description": "Unauthorized - You did not specify a bearer token or it was invalid, please check the response for further details" }, "403": { "description": "Forbidden - You have a valid bearer token, however it does not have access to the item you requested. Ensure that you are using the correct token" }, "404": { "description": "Not Found - The item you requested does not exist or could not be loaded, check that you are passing the correct Id to the correct endpoint" }, "500": { "description": "Internal Server Error - An internal error occured processing your request, please check the request body for further details" } } } } }, "components": { "securitySchemes": { "Bearer": { "type": "http", "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}"", "scheme": "bearer", "bearerFormat": "jwt" } } }, "security": [ { "Bearer": [] } ], "tags": [ { "name": "Settings", "description": "Settings operations" } ] } ``` -------------------------------- ### GET /api/v1/Projects/{projectId}/ptps/risktypes/{id} Source: https://developer.hammertechglobal.com/reference/getprojectptprisktype Retrieves the details of a specific Ptp Risk Type within a project. This endpoint is used to get information about a predefined risk associated with PTP (Permit to Proceed) processes. ```APIDOC ## GET /api/v1/Projects/{projectId}/ptps/risktypes/{id} ### Description Get the Ptp Risk Type Details. This endpoint retrieves specific information about a Ptp Risk Type, identified by its unique ID, within a given project. ### Method GET ### Endpoint /api/v1/Projects/{projectId}/ptps/risktypes/{id} ### Parameters #### Path Parameters - **projectId** (string) - Required - The unique identifier of the project that is associated with the Ptp. - **id** (string) - Required - The unique identifier of the risk type. ### Response #### Success Response (200) - **id** (string) - A unique identifier for this record. - **description** (string) - Predefined Risk description. - **isHistoric** (boolean) - True for historic records. - **isDeleted** (boolean) - True for softdeleted records. - **applicableAllProjects** (boolean) - True for company-wide PTP risktypes. - **addToFutureProject** (boolean) - True if needs to be automatically added to new projects. - **dateCreated** (string) - Datetime this record was created on. - **previousVersion** (object) - A minimal record describing predefined PtpRiskType (Hazard). - **ptpRiskTypeLocaliseds** (array) - An array of localized risk type descriptions. ``` -------------------------------- ### POST /users Source: https://developer.hammertechglobal.com/reference/createuser Creates a new user in the system. The newly created user can be assigned administrative privileges for specified projects and can have custom permission sets. ```APIDOC ## POST /users ### Description Creates a new user with specified details, including project admin roles and custom permission sets. ### Method POST ### Endpoint /users ### Parameters #### Request Body - **firstName** (string) - Required - User's first name. - **lastName** (string) - Required - User's last name. - **email** (string) - Required - User's email address. - **password** (string) - Required - User's password. - **isProjectAdmin** (boolean) - Optional - True if the user will be an admin for the specified projects. - **functionIds** (array[string]) - Optional - List of user function IDs (UUID format). - **customUserPermissionSetId** (string) - Optional - ID of the custom user permission set to assign (UUID format). - **regionCustomUserPermissionSetId** (string) - Optional - Configured permission set for users at a region level (UUID format). - **projectAdminCustomUserPermissionSetId** (string) - Optional - Configured permission set for users when they are a project admin (UUID format). ### Request Example ```json { "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com", "password": "securePassword123", "isProjectAdmin": true, "functionIds": [ "a1b2c3d4-e5f6-7890-1234-567890abcdef" ], "customUserPermissionSetId": "f0e9d8c7-b6a5-4321-fedc-ba9876543210", "projectAdminCustomUserPermissionSetId": "10293847-56ab-cdef-0123-456789abcdef" } ``` ### Response #### Success Response (200) - **isSuccess** (boolean) - True if request was processed successfully. - **httpStatusCode** (integer) - Http response status code. - **messageText** (string) - Status message. - **createdEntityId** (string) - Id of the object that was created or updated (UUID format). - **xRequestId** (string) - The unique identifier for tracking a particular request. #### Response Example ```json { "isSuccess": true, "httpStatusCode": 200, "messageText": "User created successfully.", "createdEntityId": "123e4567-e89b-12d3-a456-426614174000", "xRequestId": "abcdef12-3456-7890-abcd-ef1234567890" } ``` #### Error Responses - **400** Bad Request - The request we received was invalid, please check for missing headers and refer to the examples. - **401** Unauthorized - You did not specify a bearer token or it was invalid, please check the response for further details. - **403** Forbidden - You have a valid bearer token, however it does not have access to the item you requested. Ensure that you are using the correct token. - **409** Conflict - The request could not be completed due to a conflict with the current state of the resource. - **500** Internal Server Error - An internal error occured processing your request, please check the request body for further details. ``` -------------------------------- ### ProjectPatchRequest Schema Source: https://developer.hammertechglobal.com/reference/patchproject Defines the schema for patching a Project object, including client contact email, expected start and end dates, and site timing details. The siteTiming property is an array of objects, each representing a day of the week with optional start and end times. ```json { "clientContactEmail": { "type": "string", "description": "Client contact email", "nullable": true }, "expectedStartDate": { "type": "string", "description": "Expected start date", "format": "date-time", "nullable": true }, "expectedEndDate": { "type": "string", "description": "Expected end date", "format": "date-time", "nullable": true }, "siteTiming": { "type": "array", "items": { "title": "SiteTimingPatchRequest", "required": [ "dayOfWeek" ], "type": "object", "properties": { "dayOfWeek": { "enum": [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], "type": "string", "description": "Day of Week" }, "startTime": { "type": "string", "description": "Start Time", "nullable": true }, "endTime": { "type": "string", "description": "End Time", "nullable": true } }, "description": "Represents a patch request for SiteTiming updates", "x-readme-ref-name": "SiteTimingPatchRequest" }, "description": "Site timing information" } } ``` -------------------------------- ### GET /api/v1/EquipmentInductions Source: https://developer.hammertechglobal.com/reference/listequipmentinductions Retrieves a list of equipment inductions. This endpoint allows filtering by project, modification date, sorting, pagination, and inclusion of deleted records. ```APIDOC ## GET /api/v1/EquipmentInductions ### Description Returns a list of equipment inductions in the HammerTech system. Equipment inductions represent the safety training and competency. ### Method GET ### Endpoint /api/v1/EquipmentInductions ### Parameters #### Query Parameters - **projectId** (string) - Optional - **Optional.** Filter equipment inductions by project ID. - **modifiedSince** (string) - Optional - **Optional.** Filter equipment inductions by modification date. - **sortBy** (string) - Optional - **Optional.** Sort equipment inductions by specified field. - **skip** (integer) - Optional - **Optional.** The number of rows to skip in the result set (for pagination). - **take** (integer) - Optional - **Optional.** Number of rows to retrieve. - **includeDeleted** (boolean) - Optional - **Optional.** Include deleted equipment inductions in the results. ### Response #### Success Response (200) - **id** (string) - A unique identifier for this record - **updatedDate** (string) - ISO8601 Format - Project Local Time - **inductionDate** (string) - ISO8601 Format - Project Local Time - **removedFromSiteDate** (string) - ISO8601 Format - Project Local Time, nullable - **uniqueCode** (string) - Unique Plant Identifier, nullable - **equipmentProfile** (object) - - **id** (string) - A unique identifier for this record - **owner** (string) - Hire Company #### Response Example { "equipmentInductions": [ { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "updatedDate": "2023-10-27T10:00:00Z", "inductionDate": "2023-10-26T09:00:00Z", "removedFromSiteDate": null, "uniqueCode": "PLANT-123", "equipmentProfile": { "id": "f0e9d8c7-b6a5-4321-fedc-ba9876543210", "owner": "HireCo Inc." } } ] } ```