| ProductHex required | string |
| RawBytes required | Array of strings |
object (BleAdvertisementDefinition) |
{- "ProductHex": "0000",
- "RawBytes": [
- "65010000008A0064"
], - "BLE_Definition_JSON": {
- "ActiveStatus": 0,
- "LastModifiedBy": "jimbo@milwaukeetool.com",
- "ProductHex": "0000",
- "TotalBits": 176,
- "StaticRules": [
- {
- "StartBit": 0,
- "Length": 16,
- "DataType": "int",
- "FieldName": "company-code",
- "Codes": [
- {
- "Value": 0,
- "Name": "Thing that 0 code represents"
}
]
}
], - "CustomRules": [
- {
- "BLEFirmwareVersion": 1,
- "ToolFirmwareVersion": 2,
- "ToolAdvertisementSequenceNumber": 5,
- "StartBit": 104,
- "Length": 16,
- "DataType": "int",
- "FieldName": "total-cycles",
- "EndianType": "little"
}
]
}
}[- {
- "ParsedResults": [
- {
- "RawByte": "65010000008A0064",
- "StaticRules": {
- "company-code": 0,
- "mpbid_parsed": "0x0",
- "locked": false,
- "coincell": 0,
- "recentflag": "< 1 hour",
- "bluetooth-firmware-version": 0,
- "tool-firmware-version": 0,
- "service-state": "Non-Functional, needs service",
- "total-trigger-pulls": 0,
- "tool-advertisement-sequence-number": 0
}, - "CustomRules": {
- "total-cycles": 25856
}
}
], - "BLEDefinitionStatus": "Draft"
}
]| mpbid required | string Generated query parameter for mpbid |
| sequenceId required | integer Generated query parameter for sequenceId |
{- "sequenceId": 1662561099032,
- "mpbid": 1000000,
- "cycleId": 5,
- "memoryMapVersion": 1,
- "memoryPointer": 1,
- "progress": "COMPLETE"
}| mpbid required | string Generated path parameter for mpbid |
| sequenceId required | string Generated path parameter for sequence id |
| mpbid required | string = 10 characters |
| dataType required | string Enum: "sequential" "realtime" |
| sequenceId | number |
| totalEvents | number |
| userId | string |
| timestamp | number |
| generation | number |
Array of objects | |
Array of objects |
{- "mpbid": 1000000,
- "dataType": "sequential",
- "sequenceId": 1231231234,
- "totalEvents": 123,
- "userId": 123,
- "timestamp": 1231231234,
- "generation": 123,
- "variableDefinitions": [
- {
- "id": 1,
- "length": 1
}
], - "data": [
- {
- "applicationId": 1,
- "data": [
- 1
]
}
]
}| mpbid required | string |
| sequenceId required | integer |
{- "mpbid": "string",
- "sequenceId": 0
}{- "sequenceId": 1231231234,
- "mpbid": 1000000
}| mpbid required | string = 10 characters |
| memoryMapVersion required | string |
| cycleId | string |
| memoryPointer | string |
{- "mpbid": "stringstri",
- "memoryMapVersion": "string",
- "cycleId": "string",
- "memoryPointer": "string"
}{- "sequenceId": 1231231234,
- "mpbid": 1000000
}| variableName required | string [ 1 .. 255 ] characters Descriptive name of what the variable represents |
| variableNumber required | number [ 1 .. 65535 ] Unique identifier of the variable. Must be between 1 & 65535 (inclusive) |
| unit required | string [ 1 .. 255 ] characters Unit of measurement for variables. E.g. RPM or mV or mA |
| conversion required | number Tells you how to convert the value to human readable format |
| sizeBytes required | number Amount of bytes used to represent the value of this variable |
| description required | string |
{- "variableName": "string",
- "variableNumber": 1,
- "unit": "string",
- "conversion": 0,
- "sizeBytes": 0,
- "description": "string"
}| variableNumber required | number |
| variableName | string [ 1 .. 255 ] characters Descriptive name of what the variable represents |
| unit | string [ 1 .. 255 ] characters Unit of measurement for variables. E.g. RPM or mV or mA |
| conversion | number Tells you how to convert the value to human readable format |
| sizeBytes | number Amount of bytes used to represent the value of this variable |
| description | string |
{- "variableName": "string",
- "unit": "string",
- "conversion": 0,
- "sizeBytes": 0,
- "description": "string"
}| startTimestamp required | number Unix epoch timestamp (UTC) representing when the firmware flashing process started |
| endTimestamp required | number Unix epoch timestamp (UTC) representing when the firmware flashing process ended |
| mpbid required | string = 10 characters The unique MPBID of the tool receiving the updated firmware |
| sourceFirmwareVersion required | string >= 7 characters Firmware version on the tool before flashing. Read from memory address 0x000D. Can be either Milwaukee Tool variation semver or HEX format. If semver format is used, include all 4 version fields. If HEX format is used, it should be 4bytes/8 characters in length. |
| targetFirmwareVersion required | string >= 7 characters Firmware version on the tool after flashing. Read from memory address 0x000D. Can be either Milwaukee Tool variation semver or HEX format. Can be either semver or HEX format. If semver format is used, include all 4 version fields. If HEX format is used, it should be 4bytes/8 characters in length. |
| firmwareImageLength | number Length in bytes of the firmware image file being used for flashing |
| firmwareSource | number Number representing source of the firmware. 0 = None/Unknown, 1 = SideLoaded 2 = Artifactory |
| statusCode required | number [ 0 .. 9 ] Number representing status of the flash. Use 0 for success. success = 0, signatureError = 1, digestCompareError = 2, crcCheckError = 3, copyError = 4, startUpCRCError = 5, headerMismatchError = 6, genericError = 7, inProgress = 8, lengthError = 9, |
| errorMessage | string Optional descriptive error message to provide additional context if an error occurred |
| clientVersion | string The version of the client doing the flashing |
| username | string Email address of the user doing the flashing |
| filename | string Name of the firmware file |
| bootLoaderType required | number Number representing the type of the boot loader. Either 1 = Slim or 2 = Standard |
| client | string What client was used to send the data e.g. ServiceApp |
| partNumber required | string This is the firmware part number of the tool being flashed. Read from memory address 0x0009 |
| releaseType | string This is the firmware release type that comes from Artifactory if the firmware source is Artifactory |
| uniqueDeviceId | string The Unique Device ID of the MCU in the tool. Can be variable in length by product. Read from memory address 0x007E |
{- "startTimestamp": 1620668566765,
- "endTimestamp": 1620668580488,
- "mpbid": "0000000000",
- "sourceFirmwareVersion": "0.0.0.2",
- "targetFirmwareVersion": "01020304",
- "firmwareImageLength": 46864,
- "firmwareSource": 2,
- "statusCode": 0,
- "errorMessage": "Lost Connection",
- "clientVersion": "1.0.0",
- "username": "example@milwaukeetool.com",
- "filename": "g4drill1.bin",
- "bootLoaderType": 1,
- "client": "ServiceApp",
- "partNumber": "898002239",
- "releaseType": "prototype",
- "uniqueDeviceId": "A1B2C3D40110022003300440"
}| mpbid required | string |
| TotalEvents required | integer |
| TotalFullPressureEvents required | integer |
| EventsUntilNextService required | integer |
Array of objects |
{- "TotalEvents": 0,
- "TotalFullPressureEvents": 0,
- "EventsUntilNextService": 0,
- "Events": [
- {
- "RecordedOn": "string",
- "EventIndex": 0,
- "PeakPressure": 0,
- "PeakPressureMet": true,
- "EventType": 0
}
]
}| mpbid required | string = 10 characters |
| timestamp required | number The timestamp of the data being sent in milliseconds since epoch |
| memoryMap | number The version of the memory map that the tool is using. Same as memoryMapVersion |
| memoryMapVersion required | number The version of the memory map that the tool is using |
| sourceId required | number The source of the data being sent. See Source Types |
| svCode | string The service code of the data being sent. |
| serialNumber | string The serial number of the tool |
object | |
object (KeyValuePair) Optional tags to add to the data being sent. | |
required | Array of objects |
Example request for uploading tool read data.
{- "mpbid": "FFFE000000",
- "timestamp": 1616425200000,
- "memoryMapVersion": 51,
- "sourceId": 3,
- "svCode": "SV2025",
- "serialNumber": "1234567890",
- "clientInfo": {
- "ipAddress": "111.111.111.111",
- "version": "1.0.0",
- "userName": "dataplatform@milwaukeetool.com",
- "hostName": "Quicklink",
- "userLocality": "Greenwood_IN_46143"
}, - "data": [
- {
- "valueHex": "0101",
- "addressHex": "0000"
}, - {
- "valueHex": "01020304050607080910",
- "addressHex": "0002"
}, - {
- "valueHex": "0064B1BABF",
- "addressHex": "000C"
}
]
}{- "message": "success",
- "data": {
- "docId": "65084eb740aac18c0b321415"
}
}Retrieves memory map definitions for a specified product and memory map version. Memory maps describe OpenLink addresses within a product's memory, what data is stored at those addresses, and how to parse and display that data.
| product required | integer Example: product=298 The product ID (decimal format) to retrieve the memory map for. |
| memory_map_version required | integer Example: memory_map_version=4 The version of the memory map to retrieve. |
{- "message": "success",
- "error": false,
- "data": [
- {
- "id": 116379,
- "product_id": 273,
- "memory_map_version": 2,
- "memory_address": "00000000",
- "data_length_hex": "002",
- "label": "MEMORY MAP VERSION",
- "is_local_histogram": 1,
- "local_histogram_parse_type_id": 1,
- "local_histogram_data_labels": null,
- "data_length_int": 2,
- "parameter": null,
- "byte_swapped": 0,
- "binary": 0,
- "module_id": null,
- "is_state_transition": 0,
- "is_final_event_state": 0,
- "product": 265,
- "is_pcba_part_number": 0,
- "comparator_value": null,
- "product_id_hex": "0x0111",
- "created_at": "2024-06-18T21:04:46.000Z",
- "updated_at": "2024-06-18T21:04:46.000Z",
- "scale_value": null,
- "enumeration_dictionary_uuid": null,
- "byte_swap_word_length": 1,
- "created_by": null,
- "updated_by": null,
- "mx_tool_segment_count": null,
- "parse_offset_address": null,
- "parse_segment_length": null,
- "parent_field": null,
- "can_nodeid": null,
- "can_index": null,
- "can_subindex": null,
- "sub_labels": null,
- "signed": 0,
- "number_config": null,
- "product_internal_subsystem_id": null
}, - {
- "id": 116381,
- "product_id": 273,
- "memory_map_version": 2,
- "memory_address": "00000002",
- "data_length_hex": "004",
- "label": "SW PART NUMBER",
- "is_local_histogram": 1,
- "local_histogram_parse_type_id": 1,
- "local_histogram_data_labels": null,
- "data_length_int": 4,
- "parameter": null,
- "byte_swapped": 0,
- "binary": 0,
- "module_id": null,
- "is_state_transition": 0,
- "is_final_event_state": 0,
- "product": 265,
- "is_pcba_part_number": 1,
- "comparator_value": null,
- "product_id_hex": "0x0111",
- "created_at": "2024-06-18T21:04:46.000Z",
- "updated_at": "2024-06-18T21:04:46.000Z",
- "scale_value": null,
- "enumeration_dictionary_uuid": null,
- "byte_swap_word_length": 1,
- "created_by": null,
- "updated_by": null,
- "mx_tool_segment_count": null,
- "parse_offset_address": null,
- "parse_segment_length": null,
- "parent_field": null,
- "can_nodeid": null,
- "can_index": null,
- "can_subindex": null,
- "sub_labels": null,
- "signed": 0,
- "number_config": null,
- "product_internal_subsystem_id": null
}
]
}Updates an existing memory map definition for a specified product and memory map version. This endpoint allows you to modify the memory map data including field definitions, addresses, and parsing configurations.
| product | number |
| product_id | number |
| memory_map_version | number |
Array of objects (MemoryMapDataObject) | |
| created_by | string |
| updated_by | string |
| updated_at | string <date-time> |
{- "product": 530,
- "product_id": 530,
- "memory_map_version": 5,
- "data": [
- {
- "id": 892981,
- "BINARY": "0",
- "BYTE_SWAP_WORD_LENGTH": "1",
- "BYTE_SWAPPED": "0",
- "CAN_INDEX": "",
- "CAN_NODEID": "",
- "CAN_SUBINDEX": "0000",
- "PRODUCT_INTERNAL_SUBSYSTEM_ID": "",
- "COMPARATOR_VALUE": "",
- "FIELD_SIZE": "2",
- "ENUMERATION_DICTIONARY_UUID": "",
- "IS_FINAL_EVENT_STATE": "0",
- "IS_PARSED": "1",
- "IS_PCBA_PART_NUMBER": "0",
- "COMMAND": "MEMORY MAP VERSION",
- "PARSED_DATA_LABELS": "",
- "PARSED_DATA_SUB_LABELS": "",
- "SIGNED": "0",
- "PARSE_TYPE_ID": "1",
- "HEX_ADDRESS": "0000",
- "MODULE_ID": "",
- "MX_TOOL_SEGMENT_COUNT": "",
- "PARAMETER": "",
- "PARENT_FIELD": "",
- "PARSE_OFFSET_ADDRESS": "",
- "PARSE_SEGMENT_LENGTH": "",
- "PRODUCT": "551",
- "SCALE_VALUE": "",
- "NUMBER_CONFIG": "",
- "ELEMENT_COUNT": ""
}, - {
- "id": 892982,
- "BINARY": "0",
- "BYTE_SWAP_WORD_LENGTH": "1",
- "BYTE_SWAPPED": "0",
- "CAN_INDEX": "",
- "CAN_NODEID": "",
- "CAN_SUBINDEX": "0000",
- "PRODUCT_INTERNAL_SUBSYSTEM_ID": "",
- "COMPARATOR_VALUE": "",
- "FIELD_SIZE": "5",
- "ENUMERATION_DICTIONARY_UUID": "",
- "IS_FINAL_EVENT_STATE": "0",
- "IS_PARSED": "1",
- "IS_PCBA_PART_NUMBER": "0",
- "COMMAND": "MPBID",
- "PARSED_DATA_LABELS": "",
- "PARSED_DATA_SUB_LABELS": "",
- "SIGNED": "0",
- "PARSE_TYPE_ID": "",
- "HEX_ADDRESS": "0004",
- "MODULE_ID": "",
- "MX_TOOL_SEGMENT_COUNT": "",
- "PARAMETER": "",
- "PARENT_FIELD": "",
- "PARSE_OFFSET_ADDRESS": "",
- "PARSE_SEGMENT_LENGTH": "",
- "PRODUCT": "551",
- "SCALE_VALUE": "",
- "NUMBER_CONFIG": "",
- "ELEMENT_COUNT": ""
}
], - "created_by": "waad|C4DMlijjMl0qlMF_2I9jXuwIDxHK3j7qXo0xRzCyvd0",
- "updated_by": "waad|C4DMlijjMl0qlMF_2I9jXuwIDxHK3j7qXo0xRzCyvd0",
- "updated_at": "2026-04-15T12:40:14.027Z"
}{- "message": "success",
- "error": false
}Creates a new memory map definition for a specified product and memory map version. Memory maps define the structure and parsing rules for tool memory data, including OpenLink addresses, field sizes, and display configurations.
| product | number |
| product_id | number |
| memory_map_version | number |
Array of objects (MemoryMapDataObject) | |
| created_by | string |
| updated_by | string |
| updated_at | string <date-time> |
{- "product": 530,
- "product_id": 530,
- "memory_map_version": 5,
- "data": [
- {
- "id": 892981,
- "BINARY": "0",
- "BYTE_SWAP_WORD_LENGTH": "1",
- "BYTE_SWAPPED": "0",
- "CAN_INDEX": "",
- "CAN_NODEID": "",
- "CAN_SUBINDEX": "0000",
- "PRODUCT_INTERNAL_SUBSYSTEM_ID": "",
- "COMPARATOR_VALUE": "",
- "FIELD_SIZE": "2",
- "ENUMERATION_DICTIONARY_UUID": "",
- "IS_FINAL_EVENT_STATE": "0",
- "IS_PARSED": "1",
- "IS_PCBA_PART_NUMBER": "0",
- "COMMAND": "MEMORY MAP VERSION",
- "PARSED_DATA_LABELS": "",
- "PARSED_DATA_SUB_LABELS": "",
- "SIGNED": "0",
- "PARSE_TYPE_ID": "1",
- "HEX_ADDRESS": "0000",
- "MODULE_ID": "",
- "MX_TOOL_SEGMENT_COUNT": "",
- "PARAMETER": "",
- "PARENT_FIELD": "",
- "PARSE_OFFSET_ADDRESS": "",
- "PARSE_SEGMENT_LENGTH": "",
- "PRODUCT": "551",
- "SCALE_VALUE": "",
- "NUMBER_CONFIG": "",
- "ELEMENT_COUNT": ""
}, - {
- "id": 892982,
- "BINARY": "0",
- "BYTE_SWAP_WORD_LENGTH": "1",
- "BYTE_SWAPPED": "0",
- "CAN_INDEX": "",
- "CAN_NODEID": "",
- "CAN_SUBINDEX": "0000",
- "PRODUCT_INTERNAL_SUBSYSTEM_ID": "",
- "COMPARATOR_VALUE": "",
- "FIELD_SIZE": "5",
- "ENUMERATION_DICTIONARY_UUID": "",
- "IS_FINAL_EVENT_STATE": "0",
- "IS_PARSED": "1",
- "IS_PCBA_PART_NUMBER": "0",
- "COMMAND": "MPBID",
- "PARSED_DATA_LABELS": "",
- "PARSED_DATA_SUB_LABELS": "",
- "SIGNED": "0",
- "PARSE_TYPE_ID": "",
- "HEX_ADDRESS": "0004",
- "MODULE_ID": "",
- "MX_TOOL_SEGMENT_COUNT": "",
- "PARAMETER": "",
- "PARENT_FIELD": "",
- "PARSE_OFFSET_ADDRESS": "",
- "PARSE_SEGMENT_LENGTH": "",
- "PRODUCT": "551",
- "SCALE_VALUE": "",
- "NUMBER_CONFIG": "",
- "ELEMENT_COUNT": ""
}, - {
- "id": 892983,
- "BINARY": "0",
- "BYTE_SWAP_WORD_LENGTH": "1",
- "BYTE_SWAPPED": "0",
- "CAN_INDEX": "",
- "CAN_NODEID": "",
- "CAN_SUBINDEX": "0000",
- "PRODUCT_INTERNAL_SUBSYSTEM_ID": "",
- "COMPARATOR_VALUE": "",
- "FIELD_SIZE": "4",
- "ENUMERATION_DICTIONARY_UUID": "",
- "IS_FINAL_EVENT_STATE": "0",
- "IS_PARSED": "1",
- "IS_PCBA_PART_NUMBER": "0",
- "COMMAND": "SW PART NUMBER",
- "PARSED_DATA_LABELS": "",
- "PARSED_DATA_SUB_LABELS": "",
- "SIGNED": "0",
- "PARSE_TYPE_ID": "1",
- "HEX_ADDRESS": "0009",
- "MODULE_ID": "",
- "MX_TOOL_SEGMENT_COUNT": "",
- "PARAMETER": "",
- "PARENT_FIELD": "",
- "PARSE_OFFSET_ADDRESS": "",
- "PARSE_SEGMENT_LENGTH": "",
- "PRODUCT": "551",
- "SCALE_VALUE": "",
- "NUMBER_CONFIG": "",
- "ELEMENT_COUNT": ""
}
], - "created_by": "waad|C4DMlijjMl0qlMF_2I9jXuwIDxHK3j7qXo0xRzCyvd0",
- "updated_by": "waad|C4DMlijjMl0qlMF_2I9jXuwIDxHK3j7qXo0xRzCyvd0",
- "updated_at": "2026-04-15T12:40:14.027Z"
}{- "message": "success",
- "error": false
}This endpoint returns product metadata. If a product ID is provided, a single product will be returned. If no product ID is provided, all products will be returned.
| productid | string Example: productid=0x0001 Product ID in hex format with prefix |
{- "message": "Success",
- "error": false,
- "data": [
- {
- "id": 1,
- "description": "M18™ 1/2\" Compact Brushless Drill/Driver",
- "platform_id": 1,
- "end_product_base_model_number": "2701",
- "model_emea": "M18 BLDD-0",
- "model_anz": "M18BLDD-0",
- "model_ap": "M18BLDD-0",
- "product_id": "0x0001",
- "default_product_id": "0x0001",
- "internal_one_key": 0,
- "embedded_tick_capable": 0,
- "insertable_tick_ptt_capable": 0,
- "mx_product_key_generated": 0,
- "mx_product_key": 0,
- "created_at": "2023-09-19T15:01:58.365Z",
- "updated_at": "2023-09-19T15:01:58.365Z",
- "vpin_project_number": "12345",
- "ble_module_id": null,
- "platform_name": "M18",
- "ble_module_name": "BLE112",
- "p_id": 1,
- "title": "M18™ 1/2\" Compact Brushless Drill/Driver",
- "subsystem_count": 2,
- "internal_subsystems": [
- {
- "id": 1,
- "subsystem_id": 9,
- "name": "Orca"
}
]
}
]
}Retrieve Images associated with a SV Code.
| mpbid | string Example: mpbid=01320008F8 MPBID to query service instances |
| svcode | string Example: svcode=SV1234567 SVCode to query service instances |
| nonopenlink | string Enum: "true" "false" Example: nonopenlink=false Flag to query non-open link tools |
| serialNumber | string Example: serialNumber=K16AD193900033 Serial number to query service instances for reports |
[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Update a record for the images associated with a SV Code.
| id | string |
| mpbid | string |
| svCode | string |
| position | string |
object (NonWarrantableReasons) | |
| imageContent | string |
| timestamp | number |
| userId | string |
| userEmail | string |
| userLocality | string |
| notes | string |
object (ProductLabelInspectionContents) |
{- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "position": "Top",
- "nonWarrantableReasons": {
- "outOfWarranty": false,
- "housingDamage": false,
- "missingParts": false,
- "ingressWater": false,
- "other": false,
- "comments": "Something"
}, - "imageContent": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB=",
- "timestamp": 1729019562642,
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "userEmail": "Jared.Chapiewsky@milwaukeetool.com",
- "userLocality": "Madison_WI_53707",
- "notes": "Notes",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Create a record for images associated with a SV Code.
| id | string |
| mpbid | string |
| svCode | string |
| position | string |
object (NonWarrantableReasons) | |
| imageContent | string |
| timestamp | number |
| userId | string |
| userEmail | string |
| userLocality | string |
| notes | string |
object (ProductLabelInspectionContents) |
{- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "position": "Top",
- "nonWarrantableReasons": {
- "outOfWarranty": false,
- "housingDamage": false,
- "missingParts": false,
- "ingressWater": false,
- "other": false,
- "comments": "Something"
}, - "imageContent": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB=",
- "timestamp": 1729019562642,
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "userEmail": "Jared.Chapiewsky@milwaukeetool.com",
- "userLocality": "Madison_WI_53707",
- "notes": "Notes",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Update a record for the images associated with a SV Code.
| id | string |
| mpbid | string |
| svCode | string |
| position | string |
object (NonWarrantableReasons) | |
| imageContent | string |
| timestamp | number |
| userId | string |
| userEmail | string |
| userLocality | string |
| notes | string |
object (ProductLabelInspectionContents) |
{- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "position": "Top",
- "nonWarrantableReasons": {
- "outOfWarranty": false,
- "housingDamage": false,
- "missingParts": false,
- "ingressWater": false,
- "other": false,
- "comments": "Something"
}, - "imageContent": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB=",
- "timestamp": 1729019562642,
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "userEmail": "Jared.Chapiewsky@milwaukeetool.com",
- "userLocality": "Madison_WI_53707",
- "notes": "Notes",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Create a record for images associated with a SV Code.
| id | string |
| mpbid | string |
| svCode | string |
| position | string |
object (NonWarrantableReasons) | |
| imageContent | string |
| timestamp | number |
| userId | string |
| userEmail | string |
| userLocality | string |
| notes | string |
object (ProductLabelInspectionContents) |
{- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "position": "Top",
- "nonWarrantableReasons": {
- "outOfWarranty": false,
- "housingDamage": false,
- "missingParts": false,
- "ingressWater": false,
- "other": false,
- "comments": "Something"
}, - "imageContent": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB=",
- "timestamp": 1729019562642,
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "userEmail": "Jared.Chapiewsky@milwaukeetool.com",
- "userLocality": "Madison_WI_53707",
- "notes": "Notes",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Delete a record for the images associated with a SV Code.
| id | string |
| mpbid | string |
| svCode | string |
{- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567"
}[- {
- "id": "01JA8SHMF49PR8TTQYE9Q340DP",
- "mpbid": "01320008F8",
- "svCode": "SV1234567",
- "productLabelInspectionContents": {
- "cameraOutputOCRText": "M18 FUEL 1/2 HAMMER DRILL 2904-20 SN:K51AD2345678",
- "systemFinalOCRText": "M18 FUEL 1/2 IN. HAMMER DRILL 2904-20 SN:K51AD2345678",
- "modelSource": "Cognex",
- "modelType": "3800 series 16 MP",
- "bornOnDate": "2024-01-15",
- "mpbid": "01320008F8",
- "serialNumberInternal": "K51AD2345678",
- "productType": "Tool",
- "productPlatform": "M18",
- "productModelName": "FUEL 1/2 IN. HAMMER DRILL",
- "cameraProgram": "Job-0"
}
}
]Generate PDF report for the service event.
| id | string |
| svCode | string |
| reportType | number |
| userId | string |
| mpbid | string |
| language | string |
object (Service) | |
| companyLogo? | string |
object (ReportAddress) | |
object | |
object | |
object |
{- "id": "01JDJ7MSMRKT8S147T1QR1G92Y",
- "svCode": "SV1234567",
- "reportType": 1,
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "mpbid": "01320008F8",
- "language": "en",
- "service": {
- "address": {
- "line1": "123 Tree St",
- "city": "Cityville",
- "state": "WI",
- "zipCode": "54614"
}, - "technicianName": "John Doe",
- "phone": "555-555-5555",
- "fax": "555-555-5555",
- "comments": "stuff"
}, - "companyLogo?": "string",
- "address": {
- "line1": "123 Tree St",
- "city": "Cityville",
- "state": "WI",
- "zipCode": "54614"
}, - "customer": {
- "name": "Jenny Doe",
- "phone": "555-867-5309",
- "email": "jenny@milwaukeetool.com",
- "address": {
- "line1": "123 Tree St",
- "city": "Cityville",
- "state": "WI",
- "zipCode": "54614"
}
}, - "tool": {
- "description": "M18™ FORCE LOGIC™ 750 MCM Dieless Crimper",
- "modelNumber": "2877-20",
- "serialNumber": "K16AD193900033"
}, - "report": {
- "createdDate": "2024-11-25T17:59:21.370Z",
- "hydraulic": true,
- "dtw": { },
- "impactWrench": { },
- "laserCalibration": { }
}
}The ID was invalid.
{- "error": "Invalid ID"
}Save data for the reworks.
| reworkId required | string |
| timestamp | number |
| property name* additional property | any |
{- "reworkId": "01JDJ5VWM7P2VJY9Y6T9CS79J0",
- "timestamp": 1732550336
}"Success"Save the calibration data for tools calibrated at PRC.
| mpbid required | string |
| userId | string |
| modelNumber | string |
| serialNumber | string |
| calibrationDate | string |
| certifiedBy | string |
{- "mpbid": "01320008F8",
- "userId": "bcbd01ae-cc21-444f-bb33-b4fa2f948b22",
- "modelNumber": "48111850",
- "serialNumber": "G29NDCBC 221104 6195992",
- "calibrationDate": "2024-01-02 12:31:23Z",
- "certifiedBy": "string"
}"Success"This endpoint creates a new tag (used for tagging tool data). The request body must include the tag's "name", "type", and "queryLabel". If the tag's type is "object", the request body must also contain a "properties" array of defined objects. Each property object must contain "name", "type" (i.e., "string", "number", or "boolean"), "queryLabel", and "required" fields. If the tag's type is an "enum", the request body must also have a "properties" array which contains the possible values for the tag.
| name required | string The name of the tag. |
| type required | string Enum: "string" "number" "boolean" "enum" "array" "object" The type of tag. |
| inputMode required | string Enum: "user" "system" Edit tag permissions. |
| description required | string The description of the tag. |
| queryLabel required | string The query label |
Array of TagPropertiesDefinition (object) or (string or booleans or numbers) The properties of the tag, which can be an array of objects or primitive values. |
Example request for creating a tag.
{- "name": "ObjectTagExample",
- "type": "object",
- "description": "This is an example object tag.",
- "inputMode": "user",
- "queryLabel": "objectTagExampleQueryLabel",
- "properties": [
- {
- "name": "Property1",
- "type": "string",
- "description": "This is an example string property.",
- "queryLabel": "property1QueryLabel",
- "required": true
}, - {
- "name": "Property2",
- "type": "boolean",
- "description": "This is an example boolean property.",
- "queryLabel": "property2QueryLabel",
- "required": false
}
]
}Example response for creating a tag.
[- {
- "_id": "66c606315f2dd4941f0ae935",
- "name": "OBJECTTAGEXAMPLE",
- "type": "object",
- "description": "This is an example object tag.",
- "inputMode": "user",
- "queryLabel": "objecttagexamplequerylabel",
- "properties": [
- {
- "name": "PROPERTY1",
- "type": "string",
- "description": "This is an example string property.",
- "queryLabel": "property1querylabel",
- "required": true
}, - {
- "name": "PROPERTY2",
- "type": "boolean",
- "description": "This is an example boolean property.",
- "queryLabel": "property2querylabel",
- "required": false
}
], - "metadata": {
- "createdOn": 1697216134294,
- "createdBy": null,
- "createdBySource": null,
- "createdBySourceVersion": null,
- "lastUpdatedOn": 1697216134294,
- "lastUpdatedBy": null
}, - "version": 1,
- "createdAt": "2023-10-13T16:55:34.518Z",
- "updatedAt": "2023-10-13T16:55:34.518Z",
- "__v": 0
}
]Get tag by ID.
| tagId required | string (TagId) ^[0-9a-fA-F]{24}$ Example: 651b14ae2a1336f3184f0a46 Document (MongoDB) ID for a tag |
Example response for creating a tag.
[- {
- "_id": "66c606315f2dd4941f0ae935",
- "name": "OBJECTTAGEXAMPLE",
- "type": "object",
- "description": "This is an example object tag.",
- "inputMode": "user",
- "queryLabel": "objecttagexamplequerylabel",
- "properties": [
- {
- "name": "PROPERTY1",
- "type": "string",
- "description": "This is an example string property.",
- "queryLabel": "property1querylabel",
- "required": true
}, - {
- "name": "PROPERTY2",
- "type": "boolean",
- "description": "This is an example boolean property.",
- "queryLabel": "property2querylabel",
- "required": false
}
], - "metadata": {
- "createdOn": 1697216134294,
- "createdBy": null,
- "createdBySource": null,
- "createdBySourceVersion": null,
- "lastUpdatedOn": 1697216134294,
- "lastUpdatedBy": null
}, - "version": 1,
- "createdAt": "2023-10-13T16:55:34.518Z",
- "updatedAt": "2023-10-13T16:55:34.518Z",
- "__v": 0
}
]Update tag by ID.
| tagId required | string (TagId) ^[0-9a-fA-F]{24}$ Example: 651b14ae2a1336f3184f0a46 Document (MongoDB) ID for a tag |
| name | string The name of the tag. |
| type required | string Enum: "string" "number" "boolean" "enum" "array" "object" The type of tag. |
| inputMode required | string Enum: "user" "system" Edit tag permissions. |
| description | string The description of the tag. |
| queryLabel required | string The query label |
required | Array of TagPropertiesDefinition (object) or (string or booleans or numbers) The properties of the tag, which can be an array of objects or primitive values. |
Example request for creating a tag.
{- "name": "ObjectTagExample",
- "type": "object",
- "description": "This is an example object tag.",
- "inputMode": "user",
- "queryLabel": "objectTagExampleQueryLabel",
- "properties": [
- {
- "name": "Property1",
- "type": "string",
- "description": "This is an example string property.",
- "queryLabel": "property1QueryLabel",
- "required": true
}, - {
- "name": "Property2",
- "type": "boolean",
- "description": "This is an example boolean property.",
- "queryLabel": "property2QueryLabel",
- "required": false
}
]
}Example response for creating a tag.
[- {
- "_id": "66c606315f2dd4941f0ae935",
- "name": "OBJECTTAGEXAMPLE",
- "type": "object",
- "description": "This is an example object tag.",
- "inputMode": "user",
- "queryLabel": "objecttagexamplequerylabel",
- "properties": [
- {
- "name": "PROPERTY1",
- "type": "string",
- "description": "This is an example string property.",
- "queryLabel": "property1querylabel",
- "required": true
}, - {
- "name": "PROPERTY2",
- "type": "boolean",
- "description": "This is an example boolean property.",
- "queryLabel": "property2querylabel",
- "required": false
}
], - "metadata": {
- "createdOn": 1697216134294,
- "createdBy": null,
- "createdBySource": null,
- "createdBySourceVersion": null,
- "lastUpdatedOn": 1697216134294,
- "lastUpdatedBy": null
}, - "version": 1,
- "createdAt": "2023-10-13T16:55:34.518Z",
- "updatedAt": "2023-10-13T16:55:34.518Z",
- "__v": 0
}
]| toolreadId required | string (ToolReadId) ^[0-9a-fA-F]{24}$ Example: 65565faad9419ffb44c51ac7 Document (MongoDB) ID for a tool read document |
Example response for tool read data.
[- {
- "_id": "66c606315f2dd4941f0ae931",
- "memoryMapVersion": 51,
- "mpbid": "FFFE000000",
- "productId": "0xFFFE",
- "batteryPackPcbaId": "56",
- "serialNumber": "1234567890",
- "parseStatus": "PARSED",
- "sourceId": 3,
- "data": [
- {
- "raw": "0101",
- "address": "0000",
- "parseTypeId": 1,
- "description": "INTEGER",
- "parsed": 257,
- "_id": "66db3f143ab7f9d566d14cc0"
}, - {
- "raw": "01020304050607080910",
- "address": "0002",
- "parseTypeId": 2,
- "description": "U16 ARRAY CHART",
- "parsed": [
- {
- "label": "Label 1",
- "value": 258,
- "displayOrder": 0
}, - {
- "label": "Label 2",
- "value": 772,
- "displayOrder": 1
}, - {
- "label": "Label 3",
- "value": 1286,
- "displayOrder": 2
}, - {
- "label": "Label 4",
- "value": 1800,
- "displayOrder": 3
}, - {
- "label": "Label 5",
- "value": 2320,
- "displayOrder": 4
}
], - "_id": "66db3f143ab7f9d566d14cc1"
}, - {
- "raw": "0064B1BABF",
- "address": "000C",
- "parseTypeId": 4,
- "description": "TIMESTAMP",
- "parsed": "2023-07-14T21:14:39.000Z",
- "_id": "66db3f143ab7f9d566d14cc2"
}
], - "tagErrors": [ ],
- "parseErrors": [ ],
- "version": 1,
- "schemaVersion": 1,
- "platformId": 2,
- "updates": [
- {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-29T20:49:52.720Z",
- "isMostRecent": true
}, - {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-27T20:49:52.720Z"
}
], - "tags": {
- "EXTERNALID": "SV2025",
- "PROJECTNUMBER": "123456",
- "ENVIRONMENT": "TEST",
- "PLATFORM": "M18",
- "LOCATION": "Greenwood_IN_46143",
- "CUSTOMER": {
- "NAME": "dataplatform@milwaukeetool.com",
- "CRMNUMBER": ""
}, - "SOURCE": "quicklink-web",
- "QUICKLINKUSERMODE": "Engineer"
}, - "createdAt": "2024-09-06T17:42:37.537Z",
- "updatedAt": "2024-09-06T17:42:44.505Z"
}
]This endpoint updates a toolread document by it's ID. The request url must include the ID of the toolread document to be updated. The request body should only contain the data to be updated. Currently, the only attributes that can be updated are: "mpbid", "serialNumber", "productId", "batteryPackPcbaId", "memoryMapVersion", "sourceId", and "tags".
| toolreadId required | string (ToolReadId) ^[0-9a-fA-F]{24}$ Example: 65565faad9419ffb44c51ac7 Document (MongoDB) ID for a tool read document |
| mpbid | string |
| serialNumber | string |
| productId | string |
| batteryPackPcbaId | string |
| memoryMapVersion | number |
| sourceId | number |
object |
{- "mpbid": "FFFE000000",
- "serialNumber": "J64AD195200734",
- "productId": "0067",
- "batteryPackPcbaId": "",
- "memoryMapVersion": 51,
- "sourceId": 18,
- "tags": {
- "SERVICECODE": "SV123",
- "ENVIRONMENT": "test",
- "PLATFORM": "M18",
- "LOCATION": "Brookfield_WI_53005",
- "CUSTOMER": {
- "NAME": "dataplatform@milwaukeetool.com",
- "CRMNUMBER": "123456"
}, - "SOURCE": "QuickLink Web"
}
}Example response for tool read data.
[- {
- "_id": "66c606315f2dd4941f0ae931",
- "memoryMapVersion": 51,
- "mpbid": "FFFE000000",
- "productId": "0xFFFE",
- "batteryPackPcbaId": "56",
- "serialNumber": "1234567890",
- "parseStatus": "PARSED",
- "sourceId": 3,
- "data": [
- {
- "raw": "0101",
- "address": "0000",
- "parseTypeId": 1,
- "description": "INTEGER",
- "parsed": 257,
- "_id": "66db3f143ab7f9d566d14cc0"
}, - {
- "raw": "01020304050607080910",
- "address": "0002",
- "parseTypeId": 2,
- "description": "U16 ARRAY CHART",
- "parsed": [
- {
- "label": "Label 1",
- "value": 258,
- "displayOrder": 0
}, - {
- "label": "Label 2",
- "value": 772,
- "displayOrder": 1
}, - {
- "label": "Label 3",
- "value": 1286,
- "displayOrder": 2
}, - {
- "label": "Label 4",
- "value": 1800,
- "displayOrder": 3
}, - {
- "label": "Label 5",
- "value": 2320,
- "displayOrder": 4
}
], - "_id": "66db3f143ab7f9d566d14cc1"
}, - {
- "raw": "0064B1BABF",
- "address": "000C",
- "parseTypeId": 4,
- "description": "TIMESTAMP",
- "parsed": "2023-07-14T21:14:39.000Z",
- "_id": "66db3f143ab7f9d566d14cc2"
}
], - "tagErrors": [ ],
- "parseErrors": [ ],
- "version": 1,
- "schemaVersion": 1,
- "platformId": 2,
- "updates": [
- {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-29T20:49:52.720Z",
- "isMostRecent": true
}, - {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-27T20:49:52.720Z"
}
], - "tags": {
- "EXTERNALID": "SV2025",
- "PROJECTNUMBER": "123456",
- "ENVIRONMENT": "TEST",
- "PLATFORM": "M18",
- "LOCATION": "Greenwood_IN_46143",
- "CUSTOMER": {
- "NAME": "dataplatform@milwaukeetool.com",
- "CRMNUMBER": ""
}, - "SOURCE": "quicklink-web",
- "QUICKLINKUSERMODE": "Engineer"
}, - "createdAt": "2024-09-06T17:42:37.537Z",
- "updatedAt": "2024-09-06T17:42:44.505Z"
}
]| persist | boolean Default: false Whether to persist the parsed data to the database. |
| mpbid required | string = 10 characters |
| timestamp required | number The timestamp of the data being sent in milliseconds since epoch. |
| memoryMapVersion required | number |
| sourceId required | number The source of the data being sent. See Source Types. |
| svCode | string The service code of the data being sent. |
| serialNumber | string The serial number of the tool. |
object | |
object (KeyValuePair) | |
required | Array of objects (ToolReadDataObjectV2) |
Example request for parsing tool read data.
{- "persist": true,
- "mpbid": "FFFE000000",
- "timestamp": 1616425200000,
- "batteryPackPcbaId": "56",
- "serialNumber": "1234567890",
- "sourceId": 3,
- "memoryMapVersion": 51,
- "clientInfo": {
- "ipAddress": "111.111.111.111",
- "version": "1.0.0",
- "userName": "dataplatform@milwaukeetool.com",
- "hostName": "Quicklink",
- "userLocality": "Greenwood_IN_46143"
}, - "tags": {
- "EXTERNALID": "SV2025",
- "PROJECTNUMBER": "123456"
}, - "data": [
- {
- "raw": "0101",
- "address": "0000"
}, - {
- "raw": "01020304050607080910",
- "address": "0002"
}, - {
- "raw": "0064B1BABF",
- "address": "000C"
}
]
}Example response for tool read data.
[- {
- "_id": "66c606315f2dd4941f0ae931",
- "memoryMapVersion": 51,
- "mpbid": "FFFE000000",
- "productId": "0xFFFE",
- "batteryPackPcbaId": "56",
- "serialNumber": "1234567890",
- "parseStatus": "PARSED",
- "sourceId": 3,
- "data": [
- {
- "raw": "0101",
- "address": "0000",
- "parseTypeId": 1,
- "description": "INTEGER",
- "parsed": 257,
- "_id": "66db3f143ab7f9d566d14cc0"
}, - {
- "raw": "01020304050607080910",
- "address": "0002",
- "parseTypeId": 2,
- "description": "U16 ARRAY CHART",
- "parsed": [
- {
- "label": "Label 1",
- "value": 258,
- "displayOrder": 0
}, - {
- "label": "Label 2",
- "value": 772,
- "displayOrder": 1
}, - {
- "label": "Label 3",
- "value": 1286,
- "displayOrder": 2
}, - {
- "label": "Label 4",
- "value": 1800,
- "displayOrder": 3
}, - {
- "label": "Label 5",
- "value": 2320,
- "displayOrder": 4
}
], - "_id": "66db3f143ab7f9d566d14cc1"
}, - {
- "raw": "0064B1BABF",
- "address": "000C",
- "parseTypeId": 4,
- "description": "TIMESTAMP",
- "parsed": "2023-07-14T21:14:39.000Z",
- "_id": "66db3f143ab7f9d566d14cc2"
}
], - "tagErrors": [ ],
- "parseErrors": [ ],
- "version": 1,
- "schemaVersion": 1,
- "platformId": 2,
- "updates": [
- {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-29T20:49:52.720Z",
- "isMostRecent": true
}, - {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-27T20:49:52.720Z"
}
], - "tags": {
- "EXTERNALID": "SV2025",
- "PROJECTNUMBER": "123456",
- "ENVIRONMENT": "TEST",
- "PLATFORM": "M18",
- "LOCATION": "Greenwood_IN_46143",
- "CUSTOMER": {
- "NAME": "dataplatform@milwaukeetool.com",
- "CRMNUMBER": ""
}, - "SOURCE": "quicklink-web",
- "QUICKLINKUSERMODE": "Engineer"
}, - "createdAt": "2024-09-06T17:42:37.537Z",
- "updatedAt": "2024-09-06T17:42:44.505Z"
}
]Reparse ToolRead documents that match the request filters and start the reprocessing workflow.
At least one filter field must be provided, or set reparseAll to true to match all ToolRead documents.
Empty filter values (for example { "ids": [] }) are not treated as filters.
When reparseAll is true, no filter criteria are applied. Optional sort, skip, and limit values still control which documents are selected.
| ids | Array of arrays non-empty An array of Tool Read Document IDs to reparse. |
| memoryMapVersion | number The version of the memory map to use during reparsing. |
| mpbids | Array of arrays non-empty An array of MPBIDs to use to find matching ToolRead Documents to reparse. |
| productIds | Array of arrays non-empty An array of Product IDs to use to find matching ToolRead Documents to reparse. |
| serialNumbers | Array of arrays non-empty An array of Serial Numbers to use to find matching ToolRead Documents to reparse. |
| parseStatus | string Enum: "PARSED" "NOT_PARSED" "IN_PROCESS" "ERROR" Reparse ToolRead Documents by parse status. |
| parseErrors | object non-empty Reparse ToolRead Documents by specific parse error code(s). |
| tags | object non-empty Reparse ToolRead Documents by specific tags. |
object An object containing a start and end date to use to find matching ToolRead Documents to reparse. | |
| sort | string Enum: "_id" "-_id" "created" "-created" "createdAt" "-createdAt" "updatedAt" "-updatedAt" Sort field for matching documents. Prefix with |
| skip | integer >= 0 Number of matching documents to skip before selecting results. |
| limit | integer >= 0 Maximum number of matching documents to reprocess. A value of |
| reparseAll required | boolean Value: true Optional when filters are provided. Set to |
Example request for reparsing tool read data.
{- "ids": [
- "66c606315f2dd4941f0ae931",
- "66c606315f2dd4941f0ae932",
- "66c606315f2dd4941f0ae933"
]
}Example response for reparsing multiple tool reads.
{- "reprocessingToolReadsTotalCount": 42
}Get toolreads based on specified query parameters
| mpbid | string Example: mpbid=006700ec12 Filter documents by mpbid field |
| serialNumber | string Example: serialNumber=J64AD195200734 Filter documents by serialNumber field |
| productId | string Example: productId=0067 Filter documents by productId field |
| batteryPackPcbaId | string Filter documents by batteryPackPcbaId field |
| parseStatus | string Enum: "PARSED" "NOT_PARSED" "IN_PROCESS" "ERROR" Example: parseStatus=PARSED Filter documents by parseStatus field |
| memoryMapVersion | number Example: memoryMapVersion=3 Filter documents by memoryMapVersion field |
| sourceId | number Example: sourceId=18 Filter documents by sourceId field |
| platformtag | string Enum: "M12" "M18" "MX" "ONEKEY" "Other" Example: platformtag=M18 Filter documents by tags.PLATFORM field |
| customernametag | string Example: customernametag=dataplatform@milwaukeetool.com |
| tagQueryLabelName | string Example: tagQueryLabelName=tagValue This is the name of the tag's queryLabel. Use the Tag's queryLabel when filtering by a tag. |
| updatedAt | string <date-time (ISO 8601 format)> Example: updatedAt=2023-11-30T14:52:07.855Z Filter documents by updatedAt field |
| createdAt | string <date-time (ISO 8601 format)> Example: createdAt=2023-11-30T14:52:03.143Z Filter documents by createdAt field |
| updatedAtStart | string <date-time (ISO 8601 format)> Example: updatedAtStart=2023-11-30T14:52:07.855Z Filter documents by updatedAt Date Range (Start Date) |
| updatedAtEnd | string <date-time (ISO 8601 format)> Example: updatedAtEnd=2023-11-30T16:52:03.143Z Filter documents by updatedAt Date Range (End Date) |
| createdAtStart | string <date-time (ISO 8601 format)> Example: createdAtStart=2023-11-30T14:52:07.855Z Filter documents by createdAt Date Range (Start Date) |
| createdAtEnd | string <date-time (ISO 8601 format)> Example: createdAtEnd=2023-11-30T15:52:03.143Z Filter documents by createdAt Date Range (End Date) |
| limit | integer [ 1 .. 100 ] Example: limit=100 The maximum number of results to return |
| sort | string Example: sort=-createdAt Field to sort the results by (Use a leading "-" for "desc") |
| skip | integer >= 0 Example: skip=5 The number of results to skip |
Example response for tool read data.
{- "data": [
- {
- "_id": "66c606315f2dd4941f0ae931",
- "memoryMapVersion": 51,
- "mpbid": "FFFE000000",
- "productId": "0xFFFE",
- "batteryPackPcbaId": "56",
- "serialNumber": "1234567890",
- "parseStatus": "PARSED",
- "sourceId": 3,
- "tagErrors": [ ],
- "parseErrors": [ ],
- "version": 1,
- "schemaVersion": 1,
- "platformId": 2,
- "updates": [
- {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-29T20:49:52.720Z",
- "isMostRecent": true
}, - {
- "device": {
- "name": "postman",
- "version": "0.1"
}, - "user": "dataplatform@milwaukeetool.com",
- "timestamp": "2024-07-27T20:49:52.720Z"
}
], - "tags": {
- "EXTERNALID": "SV2025",
- "PROJECTNUMBER": "123456",
- "ENVIRONMENT": "TEST",
- "PLATFORM": "M18",
- "LOCATION": "Greenwood_IN_46143",
- "CUSTOMER": {
- "NAME": "dataplatform@milwaukeetool.com",
- "CRMNUMBER": ""
}, - "SOURCE": "quicklink-web",
- "QUICKLINKUSERMODE": "Engineer"
}, - "createdAt": "2024-09-06T17:42:37.537Z",
- "updatedAt": "2024-09-06T17:42:44.505Z"
}
], - "totalCount": 1
}| mpbid required | string = 10 characters |
| memoryMapVersion required | string |
| cycleId | string |
| memoryPointer | string |
{- "sequenceId": 1231231234,
- "mpbid": 1000000,
- "memoryMapVersion": 1,
- "cycleId": 1231231234,
- "memoryPointer": 1
}{- "mpbid": "0001000000",
- "sequenceId": 1,
- "lastSequentialReadApplication": 0,
- "lastRealtimeReadApplication": 0
}Create a record to indicate that one unit has been replaced by another
Request body for unit replacement
| oldSerialNumber | string |
| newSerialNumber | string |
| svCode | string |
| createdBy | string |
{- "oldSerialNumber": "XYZ789",
- "newSerialNumber": "ABC123",
- "svCode": "SV123",
- "createdBy": "jim.bob@milwaukeetool.com"
}{- "oldSerialNumber": "XYZ789",
- "newSerialNumber": "ABC123",
- "svCode": "SV123",
- "createdAt": "2023-09-19T15:01:58.365Z",
- "createdBy": "jim.bob@milwaukeetool.com",
- "uuid": "12345678-1234-1234-1234-123456789012"
}Retrieve unit replacement record objects.
| oldSerialNumber | string Only return objects that match with this old serial number |
| newSerialNumber | string Only return objects that match with this new serial number |
| page | number Which page of data to return (default: 1) |
| pageSize | number How many records to return on each page (default: 10) |
{- "data": [
- {
- "oldSerialNumber": "XYZ789",
- "newSerialNumber": "ABC123",
- "svCode": "SV123",
- "createdAt": "2021-01-11T00:00:00.000Z",
- "createdBy": "Andrew"
}, - {
- "oldSerialNumber": "ABC123",
- "newSerialNumber": "ABC456",
- "svCode": "SV123",
- "createdAt": 1661280000,
- "createdBy": "Andrew"
}
], - "currentPage": 1,
- "totalPages": 1
}Retrieve the unit replacement history for a specific serial number. For retrieving the entire chain of replacement events where a particular {sn} was involved
| serialNumber required | string Serial number of the unit for which history is to be retrieved |
[- {
- "oldSerialNumber": "ABC123",
- "newSerialNumber": "ABC456",
- "svCode": "SV111",
- "createdAt": "2021-01-11T00:00:00.000Z",
- "uuid": "12345678-1234-1234-1234-123456789012"
}, - {
- "oldSerialNumber": "ABC456",
- "newSerialNumber": "ABC789",
- "svCode": "SV222",
- "createdAt": "2021-01-11T00:00:00.000Z",
- "uuid": "12345678-1234-1234-1234-123456789012"
}
]