Customer / V1 endpoints
POST https://m360soft.com/api/customer/v1/getHistory
Lists the previously uploaded and closed device session records (work history)
Request parameters:
| Name |
Type |
Description |
| order |
string |
The type and direction of the order of the records. Optional, possible values: ["id:desc", "id:asc", "connectionTime:desc", "connectionTime:asc"]. |
| limit |
integer |
Maximum number of returned records. Default: 20. Optional, range: 1 - 100. |
| startingAfter |
string |
Can be used for forward pagination. The ID of the last record on the previous page. Optional, exactly 36 characters. |
| endingBefore |
string |
Can be used for backward pagination. The ID of the first record on the next page. Optional, exactly 36 characters. |
| sessionId |
string |
Filters the results by session ID. Optional, exactly 36 characters. |
| imei |
string |
Filters the results by IMEI / serial. Optional, 3 - 64 characters. |
| m360id |
string |
Filters the results by M360 ID or Custom ID. Optional, 3 - 20 characters. |
| marketingName |
string |
Filters the results by marketing name. Optional, 3 - 100 characters. |
| username |
string |
Filters the results by username. Optional, 3 - 100 characters. |
| connectionTimeMin |
string |
Filters the results by connection time. Optional, Any valid datetime value. |
| connectionTimeMax |
string |
Filters the results by connection time. Optional, Any valid datetime value. |
| hasDiagnostics |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with diagnostics results respectively. Optional. |
| hasGrading |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with grading results respectively. Optional. |
| hasWipe |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with wipe results respectively. Optional. |
| hasOemCheck |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with OEM check results respectively. Optional. |
| hasBlacklistCheck |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with blacklist checks respectively. Optional. |
| hasReport |
bool |
Setting this filter option to TRUE or FALSE will filter out all records without or with generated reports respectively. Optional. |
| isManual |
bool |
Setting this filter option to TRUE or FALSE will filter out all non-manual or manual records respectively. Optional. |
| includeOpen |
bool |
Setting this filter option to TRUE will include sessions that are still open. Note that open sessions will appear in the history only after the device has been identified successfully. Optional. |
| *** |
*** |
*** |
| authCode |
string |
The authentication ID of the customer API account. Required, max. 100 characters. |
| authToken |
string |
The secret authentication token of the customer API account. Required, max. 100 characters. |
| testing |
bool |
Setting this value to true will result in a response populated only with syntactically correct test data which can be used to test the API integration. While your account is in testing mode the value of this parameter is always true and cannot be overridden. Optional. |
The response data object
| Property |
Type |
Description |
| totalCount |
integer |
The total number of records matching the given filter criteria |
| hasMore |
bool |
True if there are more records available after the current page |
| records |
DeviceSession[] |
Array of device session records matching the given filter and paging criteria |
| Property |
Type |
Description |
| sessionId |
string |
The unique ID of the device session |
| username |
string | null |
The username of the user that has created the session. The value will be null if the user is deleted |
| connectionTime |
string | null |
The local time when the device was connected to the PC client |
| marketingName |
string | null |
The friendly or marketing name of the device |
| alternativeMarketingNames |
array |
List of alternative names of the device |
| modelName |
string | null |
Model name of the device if available |
| applicationVersion |
string | null |
The version of the PC client that has created the session |
| m360id |
string | null |
The unique M360 identifier assigned to the device |
| imei1 |
string | null |
IMEI number of the device #1 |
| imei2 |
string | null |
IMEI number of the device #3 |
| imei3 |
string | null |
IMEI number of the device #3 |
| isManual |
bool |
This value is true if the session was created manually |
| isClosed |
bool |
This value is true if the session is closed |
| isCombined |
bool |
This value is true if the session is a combined session |
| batteryHealth |
string | null |
The result of the battery health check. Possible values:
| Value |
Description |
| unknown |
The health of the battery is unknown |
| failure |
The battery health check has failed |
| good |
The battery is in good condition |
| dead |
The battery is practically unusable |
| cold |
The battery is too cold at the moment and cannot be tested reliably |
| overheat |
The battery overheated during the check |
| over_voltage |
The voltage of the battery is abnormally high |
| change_soon |
The capacity of the battery has significantly degraded and the item should be replaced soon |
|
| batteryHealthPercent |
string | null |
The health level of the battery as percentage (precise or estimated value) |
| estimatedBatteryHealthPercent |
string | null |
The health level of the battery as percentage (estimated value) |
| preciseBatteryHealthPercent |
string | null |
The health level of the battery as percentage (precise value) |
| associatedAccount |
string | null |
Presence of an associated account (Google, Samsung, AppleID etc.) on the device. Possible values:
| Value |
Description |
| no |
No account is present on the device |
| found |
An account is present on the device |
|
| samsungKnoxWarranty |
string | null |
Status of the Samsung KNOX warranty. Possible values:
| Value |
Description |
| valid |
The warranty is still valid |
| invalid |
The warranty is void |
| unknown |
The status of the warranty is unknown |
|
| deviceOrigin |
string | null |
Origin of the device. Possible values:
| Value |
Description |
| retail |
The device was sold by retail |
| refurbished |
The device was refurbished |
| replacement |
The device is a replacement item |
| personalized |
The device is a personalized item |
|
| simStatus |
string | null |
Information about the presence of a SIM card. Possible values:
| Value |
Description |
| no_sim |
No SIM card was found in the device |
| has_sim |
A SIM card was found |
|
| networkOperator |
string | null |
The name of the network operator. This information is only available if a SIM card is present in the device |
| bluetoothMac |
string | null |
The MAC address of the bluetooth network adapter if available |
| wifiMac |
string | null |
The MAC address of the WiFi network adapter if available |
| portName |
string | null |
The name of the port the device was connected to |
| osType |
string | null |
The type of the operating system on the device. Possible values:
| Value |
Description |
| android |
Android |
| ios |
iOS |
|
| modelCode |
string | null |
The raw model code read from the device |
| manufacturer |
string | null |
The raw manufacturer name read from the device |
| productCode |
string | null |
The raw product code string read from the device |
| serial |
string | null |
The manufacturer specific serial number of the device |
| udid |
string | null |
The Unique Device Identifier of the device (iOS only) |
| softwareVersion |
string | null |
The version of the operating system running on the device |
| mobilAppVersion |
string | null |
The version of the M360 application installed on the device |
| internalStorageFree |
string | null |
The free storage space on the internal storage of the device |
| totalRAMSize |
string | null |
The total RAM size installed on the device. Android only, it will always null on iOS devices. |
| device |
Device | null |
An object representing the connected unique device and all of its data that is non session specific |
| diagnosticsResults |
DiagnosticsResult[] |
Array of objects containing the results of diagnostics tests performed during the session |
| gradingResult |
GradingResult | null |
An object containing the grading data saved during the session |
| wipeResult |
WipeResult | null |
An object containing the result of the wipe operation performed during the session |
| oemCheckResult |
OemCheckResult | null |
An object containing the result of the OEM part check operation performed during the session |
| blacklistChecks |
BlacklistCheck[] |
Array of objects containing the results of IMEI blacklist checks |
| reports |
DiagnosticsReport[] |
Array of objects containing the reports generated from the device session |
| historicalStickyData |
StickyData | null |
An object containing the historical state of sticky information attached to the device that was available at the end of the device session |
| Property |
Type |
Description |
| id |
integer |
The unique ID of the device |
| createdAt |
string |
The UTC time of the first detection of the device |
| actualStickyData |
StickyData | null |
The actual value of all sticky information attached to the device |
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| customId |
string |
The user provided custom identifier of the device |
| phoneStatus |
string |
The status of the device. Possible values:
| Value |
Description |
| unknown |
Unknown |
| customer_device |
Customer device |
| own_device |
Own device |
| stock_transfer |
Stock transfer |
| in_for_service |
In for service |
| serviced |
Serviced |
| unrepairable |
Unrepairable |
| just_purchased |
Just purchased |
| for_sale |
For sale |
|
| overallRating |
string |
Overall rating of the device. Possible values: unknown, A++, A+, A, B+, B, C+, C |
| customerInfo |
object |
Optional personal information about the customer. Possible properties:
| Property |
Type |
Description |
| firstName |
string |
First name |
| lastName |
string |
Last name |
| dateOfBirth |
string |
Date of birth |
| placeOfBirth |
string |
Place of birth |
| id1Type |
string |
Type of ID document #1 |
| id1Number |
string |
Number of ID document #1 |
| id2Type |
string |
Type of ID document #2 |
| id2Number |
string |
Number of ID document #2 |
| customNotes |
string |
Custom notes |
|
Properties marked with an asterisk (*) are optional.
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| clientTime |
string | null |
The local time reported by the PC client when the testing was done |
| diagnosticsTemplate |
DiagnosticsTemplate | null |
The template that was used for the testing |
| touchscreen * |
TestResult |
The result of the touch functionality test |
| multiTouch * |
TestResult |
The result of the multi touch functionality test |
| color * |
TestResult |
The result of the screen test |
| speaker * |
TestResult |
The result of the built-in speaker test |
| earspeaker * |
TestResult |
The result of the ear-speaker test |
| microphone * |
TestResult |
The result of the microphone test |
| hwButton * |
TestResult |
The result of the hardware button test |
| batteryHealth * |
TestResult |
The result of the battery health check. Possible details:
| Property |
Type |
Description |
| designCapacity * |
string |
The manufacturer specified capacity of the battery when fully charged |
| fullCapacity * |
string |
The actual capacity of the battery when fully charged |
| cycles * |
string |
The number of charge / discharge cycles reported by the device |
| voltage * |
string |
The current voltage level of the battery |
| health * |
string |
Generic health status of the battery. See the batteryHealth property of the DeviceSession object for more info |
| healthPercent * |
string |
The health level of the battery as percentage (iOS only) |
| temperature * |
string |
The temperature of the battery during the test |
| technology * |
string |
The type of the battery like Lithium Ion, Lithium Polymer etc. |
|
| cameraBack * |
TestResult |
The result of the back camera test |
| cameraFront * |
TestResult |
The result of the front camera test |
| autofocus * |
TestResult |
The result of the camera auto focus test |
| flash * |
TestResult |
The result of the camera flash test |
| vibration * |
TestResult |
The result of the vibration test |
| biometric * |
TestResult |
The result of the biometric sensor (fingerprint reader / face recognition) test |
| accelero * |
TestResult |
The result of the accelerometer test |
| gyroscope * |
TestResult |
The result of the gyroscope test |
| proximity * |
TestResult |
The result of the proximity sensor test |
| lightsensor * |
TestResult |
The result of the light sensor test |
| magneticSensor * |
TestResult |
The result of the magnetic sensor test |
| call * |
TestResult |
The result of the call test |
| usb * |
TestResult |
The result of the USB connection test |
| wifi * |
TestResult |
The result of the WiFI connection test |
| bluetooth * |
TestResult |
The result of the bluetooth adapter test |
| gps * |
TestResult |
The result of the GPS module test |
| headset * |
TestResult |
The result of the headset test |
| storage * |
TestResult |
The result of the storage test. Possible details:
| Property |
Type |
Description |
| total |
string |
Total space available on the built-in storage |
| free |
string |
Free space left on the built-in storage |
| used |
string |
Space used on the built-in storage |
| totalSd * |
string |
Total space available on the SD card |
| freeSd * |
string |
Free space left on the SD card |
| usedSd * |
string |
Space used on the SD card |
|
| pen * |
TestResult |
The result of the stylus pen test |
| nfc * |
TestResult |
The result of the NFC test |
| touch3d * |
TestResult |
The result of the 3D Touch test (iOS only) |
| autoSound * |
TestResult |
The result of the aAutomated speaker and microphone test |
| lcd * |
TestResult |
The result of the LCD test (android only) |
| Property |
Type |
Description |
| name |
string |
The name of the template |
| isDefault |
boolean |
Simple true / false value indicating whether the template is marked as default |
Properties marked with an asterisk (*) are optional.
| Property |
Type |
Description |
| status |
string |
The result of the test. Possible values:
| Value |
Description |
| passed |
The device successfully passed the test |
| failed |
The device failed to pass the test |
| skipped |
The test was skipped by the user |
| hardware_not_found |
A required hardware was missing to perform the test |
| missing_test |
The test is not supported on this OS / platform |
|
| elapsedTime |
array |
The elapsed time of the test(s) in seconds (if available). Multiple values mean multiple attempts |
| details * |
object |
Some tests will provide extra information about the device. The possible keys of this objects are specific to the performed test. See the relevant properties of the DiagnosticsResult object for more info |
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the check was requested by the client |
| imei |
string |
The IMEI number the check is performed on |
| status |
string |
The status of the operation. Possible values:
| Value |
Description |
| queued |
The IMEI check was scheduled and currently waiting in the queue for processing |
| started |
The check request has been sent to GSMA and currently are being processed |
| successful |
The check has been completed and the result is available |
| failed |
The check has failed for some reason |
|
| result |
string |
The result of the blacklist check operation if available. Possible values:
| Value |
Description |
| red |
the device was reported stolen or lost |
| green |
the device is clean |
| unknown |
the result is not available |
|
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| locale |
string |
Locale of the report |
| htmlLink |
string |
The URL of the HTML version of the report |
| pdfLink |
string |
The URL of the downloadable PDF version of the report |
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| clientTime |
string | null |
The local time reported by the PC client when the wipe started |
| type |
string |
The type of the wipe operation. Possible values:
| Value |
Description |
| normal |
The operation is a factory reset |
| secure |
The operation is a secure wipe |
|
| result |
string |
The status / result of the wipe operation. Possible values:
| Value |
Description |
| started |
The operation has started |
| disconnected |
The device was disconnected during the operation |
| aborted |
The operation was aborted |
| failed |
The operation has failed |
| finished |
The operation has finished successfully |
|
| hasWarning |
boolean |
If the value of this flag is true, then the result of the operation could not be determined accurately and a manual verification is advised |
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| clientTime |
string | null |
The local time reported by the PC client when the testing was done |
| bluetoothAddress * |
OemCheckPartResult |
The result of the bluetooth adapter MAC address originality check |
| wifiAddress * |
OemCheckPartResult |
The result of the WiFi adapter MAC address originality check |
| serialNumber * |
OemCheckPartResult |
The result of the device serial originality check |
| mainboardSerial * |
OemCheckPartResult |
The result of the mainboard originality check |
| batterySerial * |
OemCheckPartResult |
The result of the battery originality check |
| rearCamera * |
OemCheckPartResult |
The result of the rear camera originality check |
| frontCamera * |
OemCheckPartResult |
The result of the front camera originality check |
| screenSerial * |
OemCheckPartResult |
The result of the screen originality check |
Properties marked with an asterisk (*) are optional.
| Property |
Type |
Description |
| original * |
string |
The original value of the device part's serial / identifier |
| current * |
string |
The actual value of the device part's serial / identifier |
| isOriginal |
boolean | null |
Simple true / false value indicating whether the two identifiers are matching. If any of them is missing (eg. in case of reading issues) this flag will be null |
Properties marked with an asterisk (*) are optional.
| Property |
Type |
Description |
| createdAt |
string |
The UTC time when the data was saved on the server |
| clientTime |
string | null |
The local time reported by the PC client when the data was saved |
| screen * |
integer |
The condition of the screen (0-5) |
| case * |
integer |
The condition of the case (0-5) |
| cover * |
integer |
The condition of the back cover (0-5) |
| lcd * |
integer |
The condition of the LCD (0-5) |
| accessories * |
array |
The list of accessories available for the device. Possible values:
| Value |
Description |
| original_box |
Original box |
| papers |
Papers |
| usb_cable |
USB cable |
| charger |
Charger |
| receipt |
Receipt |
| headset |
Headset |
| sim_tool |
SIM tool |
|
| comment * |
string |
Generic notes |
Example responses:
Request: POST https://m360soft.com/api/customer/v1/getHistory
Content-Type: application/json
{
"imei": "990000862471854",
"authCode": "a167b9ae-948d-490c-9995-932984fbb223",
"authToken": "f3e1016b87d4d11d7994d39050ac5d05ef475bc422131b0916337f0c0a424be3"
}
Response:
Status: 200
Content-Type: application/json
{
"data": {
"records": [
{
"sessionId": "1a3be5f5-dedd-470e-8252-0468b5216ace",
"username": null,
"createdAt": "2025-01-01T12:00:00+00:00",
"connectionTime": "2025-01-01T12:00:00+00:00",
"marketingName": "M360test TestPhone 9T 64 GB",
"alternativeMarketingNames": [],
"modelName": "TestPhone 9T",
"applicationVersion": null,
"m360id": "AS4MPL3S4MPL3S4MPL3S",
"imei1": "990000862471854",
"imei2": "351756051523999",
"imei3": "null",
"isManual": false,
"isClosed": true,
"isCombined": false,
"batteryHealth": "good",
"batteryHealthPercent": "95%",
"preciseBatteryHealthPercent": "95%",
"estimatedBatteryHealthPercent": "85%",
"associatedAccount": null,
"samsungKnoxWarranty": "valid",
"deviceOrigin": null,
"simStatus": "has_sim",
"simLockStatus": "unknown",
"networkOperator": "vodafone HU",
"bluetoothMac": "38:DF:40:88:A8:74",
"wifiMac": "3F:79:DE:BF:2D:30",
"portName": "1",
"osType": "android",
"modelCode": "SAMPLE",
"manufacturer": "SAMPLE",
"productCode": "SAMPLE",
"serial": "SAMPLE",
"udid": null,
"softwareVersion": "7.0",
"mobilAppVersion": null,
"internalStorageFree": "60 GB",
"totalRAMSize": "8 GB",
"iosSalesRegion": null,
"MDMState": null,
"batteryCycles": null,
"batteryDesignCapacity": null,
"fullChargeCapacity": null,
"rooted": false,
"secureLocked": null,
"memoryCard": null,
"iosRegulatoryModel": null,
"ecid": null,
"deviceColor": null,
"iosJailbreak": null,
"simLock": null,
"eid": "12345678901234567890123456789012",
"extendedModelCode": null,
"device": {
"id": 515380,
"createdAt": "2025-01-01T12:00:00+00:00",
"actualStickyData": null
},
"historicalStickyData": null,
"gradingResult": {
"clientTime": "2025-01-01T12:00:00+00:00",
"createdAt": "2025-01-01T12:00:00+00:00",
"comment": "Test comment!",
"cover": 0,
"screen": 5,
"lcd": 0,
"case": 0,
"accessories": [
"original_box",
"charger"
]
},
"wipeResult": null,
"oemCheckResult": {
"clientTime": "2025-01-01T12:00:00+00:00",
"createdAt": "2025-01-01T12:00:00+00:00",
"frontCamera": {
"current": "ANM45312LQXFNQW38",
"original": "ANM45312LQXFNQW39",
"isOriginal": false
},
"serialNumber": {
"current": "DLXP4BG8FCM6",
"original": "DLXP4BG8FCM6",
"isOriginal": true
},
"screenSerial": {
"isOriginal": true,
"current": "X",
"original": "X"
}
},
"diagnosticsResults": [
{
"clientTime": "2025-01-01T12:00:00+00:00",
"createdAt": "2025-01-01T12:00:00+00:00",
"diagnosticsTemplate": null,
"color": {
"status": "passed",
"elapsedTime": [
10
]
},
"microphone": {
"status": "skipped",
"elapsedTime": []
},
"hwButton": {
"status": "passed",
"elapsedTime": []
},
"batteryHealth": {
"status": "passed",
"elapsedTime": [
0,
605
],
"details": {
"cycles": "254"
}
},
"cameraBack": {
"status": "skipped",
"elapsedTime": [
23
]
},
"gyroscope": {
"status": "failed",
"elapsedTime": [
0
]
},
"autoSound": {
"status": "passed",
"elapsedTime": [],
"details": {
"autoSoundWorkingHardware": "Bottom",
"autoSoundNotWorkingHardware": "Front"
}
}
}
],
"blacklistChecks": [],
"lastBlacklistCheckResult": null,
"lastNetworkCheckResult": null,
"reports": []
}
],
"totalCount": 1,
"hasMore": false
},
"meta": {
"success": true
}
}
Request: POST https://m360soft.com/api/customer/v1/getHistory
Content-Type: application/json
{
"limit": -1,
"authCode": "a167b9ae-948d-490c-9995-932984fbb223",
"authToken": "f3e1016b87d4d11d7994d39050ac5d05ef475bc422131b0916337f0c0a424be3"
}
Response:
Status: 400
Content-Type: application/json
{
"data": [],
"meta": {
"success": false,
"errors": {
"code": "validation:parameter_error",
"title": "One or more parameters are missing or invalid",
"details": {
"limit": [
"This value should be between 1 and 100."
]
}
}
}
}
POST https://m360soft.com/api/customer/v1/generateReport
Creates a PDF / HTML report from the specified details of the given device session
Request parameters:
| Name |
Type |
Description |
| diagnosticsResultId |
integer |
ID of the DiagnosticsResult object to include in the report. The default value is the ID of the last diagnostics test result of the session. Optional. |
| contents |
array |
List of the content parts to include in the report. Default: all contents. Optional, possible values: ["diagnostics", "grading", "wipe", "oem_check", "device_expenses", "grading_photos", "sim_lock_check"]. |
| dateTimeFormat |
string |
Date/time format to use in the report. Default: dd/MM/yyyy HH:mm. Optional, possible values: ["dd/MM/yyyy HH:mm", "MM/dd/yyyy HH:mm", "yyyy/MM/dd HH:mm"]. |
| timeZone |
string |
Timezone to use (eg.: "UTC", "Europe/Berlin" etc.) when displaying dates and times in the report. Default: UTC. Optional, max. 100 characters. |
| sessionId |
string |
The unique ID of the device session. Required, exactly 36 characters. |
| locale |
string |
ISO 639-1 language code that is supported by the application. Optional, exactly 2 characters, Allowed values: "de","en","es","fr","hu","it","pt","ru","tr","uk","zh","lt","pl". |
| *** |
*** |
*** |
| authCode |
string |
The authentication ID of the customer API account. Required, max. 100 characters. |
| authToken |
string |
The secret authentication token of the customer API account. Required, max. 100 characters. |
| testing |
bool |
Setting this value to true will result in a response populated only with syntactically correct test data which can be used to test the API integration. While your account is in testing mode the value of this parameter is always true and cannot be overridden. Optional. |
Example responses:
Request: POST https://m360soft.com/api/customer/v1/generateReport
Content-Type: application/json
{
"sessionId": "bc883c8b-46d3-ef73-924d-23005e7e8e13",
"contents": [
"diagnostics",
"grading"
],
"authCode": "a167b9ae-948d-490c-9995-932984fbb223",
"authToken": "f3e1016b87d4d11d7994d39050ac5d05ef475bc422131b0916337f0c0a424be3"
}
Response:
Status: 200
Content-Type: application/json
{
"data": {
"diagnosticsReport": {
"id": "15d8-3390b0bbfadb61e0b4c3f-20200115",
"htmlLink": "https://m360soft.com/reports/diagnostics/sample.html",
"pdfLink": "https://m360soft.com/reports/diagnostics/sample.pdf"
}
},
"meta": {
"success": true
}
}
POST https://m360soft.com/api/customer/v1/getExternalReports
Lists the incoming external reports
Request parameters:
| Name |
Type |
Description |
| timeZone |
string |
The time zone to use when displaying dates and times. Optional, max. 100 characters, Any valid timezone value. |
| order |
string |
The type and direction of the order of the records. Optional, possible values: ["id:desc", "id:asc", "finishedTime:desc", "finishedTime:asc"]. |
| limit |
integer |
Maximum number of returned records. Default: 20. Optional, range: 1 - 100. |
| startingAfter |
string |
Can be used for forward pagination. The ID of the last record on the previous page. Optional, exactly 36 characters, format: "/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/". |
| endingBefore |
string |
Can be used for backward pagination. The ID of the first record on the next page. Optional, exactly 36 characters, format: "/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/". |
| imei |
string |
Filters the results by IMEI / serial. Optional, 3 - 20 characters, format: "/^[0-9a-fA-F-]{3,20}$/". |
| friendlyName |
string |
Filters the results by friendly name. Optional, 3 - 100 characters. |
| email |
string |
Filters the results by sender email. Optional, 3 - 100 characters. |
| osType |
string |
Filters the results by operating system type. Optional, possible values: ["android", "ios"]. |
| finishedTimeMin |
string |
Filters the results by finished time. Optional, Any valid datetime value. |
| finishedTimeMax |
string |
Filters the results by finished time. Optional, Any valid datetime value. |
| calculateTotalCount |
bool |
Setting this to TRUE will calculate the total number of records that match the filters up to 10000. The response will contain the total count in the totalCount field. If the number of matching records is greater than 10000, the totalCount field will contain the value 10000. Optional. |
| *** |
*** |
*** |
| authCode |
string |
The authentication ID of the customer API account. Required, max. 100 characters. |
| authToken |
string |
The secret authentication token of the customer API account. Required, max. 100 characters. |
| testing |
bool |
Setting this value to true will result in a response populated only with syntactically correct test data which can be used to test the API integration. While your account is in testing mode the value of this parameter is always true and cannot be overridden. Optional. |
This is the data object of the response of the getExternalReports API endpoint.
| Property |
Type |
Description |
| records |
ExternalReport[] |
The list of external reports |
| hasMore |
bool |
Whether there are more records |
| totalCount |
int | null |
The total number of records (up to 10000). Only available when calculateTotalCount request parameter is set to true |
An object representing an external report. The external report stores the test and grading results of a device made by an external user using the M360 Mobil App.
| Property |
Type |
Description |
| uid |
string |
The unique ID of the external report |
| email |
string | null |
The email address of the user that created the external report |
| createdAt |
string |
The date and time when the data was saved on the server |
| finishedTime |
string |
The time when the report was created on the device |
| friendlyName |
string | null |
The friendly name of the device |
| imei |
string | null |
The IMEI number of the device. |
| osType |
string |
The type of the operating system on the device. Possible values:
| Value |
Description |
| android |
Android |
| ios |
iOS |
|
| manufacturer |
string | null |
The manufacturer of the device |
| model |
string | null |
The model code of the device (Android only) |
| identifier |
string | null |
The model identifier of the device (iOS only) |
| storage |
string | null |
The storage capacity of the device (iOS only) |
| appVersion |
string | null |
The version of the M360 mobile application that created the external report |
| htmlLink |
string | null |
A link to the HTML report |
| tests |
DiagnosticsResultTest[] |
The list of test results |
| gradingResult |
GradingResult | null |
An object containing the grading data of the device |
This object holds the result and details of a single device diagnostics test.
| Property |
Type |
Description |
| testId |
string |
The test ID |
| result |
string |
The result of the test. Possible values:
| Value |
Description |
| Passed |
The device successfully passed the test |
| Failed |
The device failed to pass the test |
| Skipped |
The test was skipped by the user |
| NA |
The test is not available on the device |
|
| elapsedTime |
array |
The elapsed time of the test(s) in seconds (if available). Multiple values mean multiple attempts. |
| details |
DiagnosticsResultDetail[] |
The list of extra details |
This object holds the saved grading information of a device.
| Property |
Type |
Description |
| createdAt |
string |
The date and time when the data was saved on the server |
| modificationTimestamp |
string | null |
The date and time when the data was last modified |
| screen |
int |
The condition of the screen (0-5) A result of 0 means no value was selected for this grading option |
| back |
int |
The condition of the back cover (0-5) A result of 0 means no value was selected for this grading option |
| phoneCase |
int |
The condition of the case (0-5) A result of 0 means no value was selected for this grading option |
| lcd |
int |
The condition of the LCD (0-5) A result of 0 means no value was selected for this grading option |
| accessories |
string[] |
The list of accessories available for the device. Possible values:
| Value |
Description |
| original_box |
Original box |
| papers |
Papers |
| usb_cable |
USB cable |
| charger |
Charger |
| receipt |
Receipt |
| headset |
Headset |
| sim_tool |
SIM tool |
|
| comment |
string |
Generic notes |
This object holds a single, additional detail of a diagnostics test. Some tests have multiple parts with individual results, while other tests provide extra information. For example the battery test can provide details about the original capacity of the battery, temperature, voltage, etc.
| Property |
Type |
Description |
| context |
string |
The context ID of the detail. The context ID determines the type of the detail and the meaning of the properties. Possible values:
| Value |
Description |
| BatteryCurrentCapacity |
The current capacity of the battery in mAh |
| BatteryCycles |
The number of charge cycles the battery has gone through |
| BatteryDrainPercentLost |
The percentage of battery capacity lost due to drain |
| BatteryOriginalCapacity |
The original capacity of the battery in mAh |
| BatteryTechnology |
The technology of the battery |
| BatteryTemperature |
The temperature of the battery in degrees Celsius |
| BatteryVoltage |
The voltage of the battery in mV |
| BiometricFaceIdCondition |
The condition of the face ID biometric sensor |
| BiometricFaceIdConditionFail |
The reason why the face ID biometric sensor failed |
| HardwareButtonAction |
The result of the action button test |
| HardwareButtonCameraSlide |
The result of the camera slide button test |
| HardwareButtonCameraTake |
The result of the camera button test |
| HardwareButtonHome |
The result of the home button test |
| HardwareButtonMute |
The result of the mute button test |
| HardwareButtonNotPredefined |
The test result of other, found, non-standard hardware buttons |
| HardwareButtonPower |
The result of the power button test |
| HardwareButtonVolumeDown |
The result of the volume down button test |
| HardwareButtonVolumeUp |
The result of the volume up button test |
| ChargeAc |
The result of the AC charging test |
| ChargeDock |
The result of the charging test through the dock port |
| ChargeUsb |
The result of the charging test through the USB port |
| ChargeWired |
The result of the wired charging test |
| ChargeWireless |
The result of the wireless charging test |
| EstimatedBatteryHealth |
The estimated health of the battery in percentage |
| MicrophoneBack |
The result of the back microphone test |
| MicrophoneBottom |
The result of the bottom microphone test |
| MicrophoneCamera |
The result of the camera microphone test |
| MicrophoneFront |
The result of the front microphone test |
| MicrophoneLeft |
The result of the left microphone test |
| MicrophoneMicrophone |
The result of the microphone test |
| MicrophoneNotPredefined |
The test result of other, found, non-standard microphones |
| MicrophoneRight |
The result of the right microphone test |
| MicrophoneTop |
The result of the top microphone test |
| MultitouchDetectedNumberOfTouches |
The number of touches detected by the multitouch test |
| PreciseBatteryHealth |
The precise health of the battery in percentage |
| SpeakerEar |
The result of the ear speaker test |
| SpeakerLoud |
The result of the loudspeaker test |
| StorageFree |
The amount of free storage on the device |
| StorageTotal |
The total amount of storage |
| StorageUsed |
The amount of used storage |
| TouchTestVersion |
The version of the performed touch test |
|
| title |
string |
The title of the detail. For example the microphone test will list all tested microphones as details and the title will contain the name of the microphone (Front, Back, etc.). Or as another example the hardware button test will list all tested buttons as details and the title will contain the name or key code (if the name cannot be determined) of the button (Volume Up, Volume Down, KEYCODE_PTT etc.). |
| result |
string |
Some tests consist of multiple parts which are provided as details. If the detail is a sub-test then this property shows the result of it. Possible values:
| Value |
Description |
| NA |
This detail does not have a result |
| Passed |
The device passed the sub-test |
| Failed |
The device failed the sub-test |
| Skipped |
The sub-test was skipped |
|
| value |
string |
The value of the detail, if applicable. For example the exact battery health percentage or the number of times the button was pressed etc. |
Example responses:
Request: POST https://m360soft.com/api/customer/v1/getExternalReports
Content-Type: application/json
{
"limit": 10,
"friendlyName": "iphone",
"calculateTotalCount": true,
"authCode": "a167b9ae-948d-490c-9995-932984fbb223",
"authToken": "f3e1016b87d4d11d7994d39050ac5d05ef475bc422131b0916337f0c0a424be3"
}
Response:
Status: 200
Content-Type: application/json
{
"data": {
"records": [
{
"uid": "49f8faf8-1692-4a9c-af4f-7e86937962f8",
"email": "[email protected]",
"createdAt": "2025-01-01T12:00:00+00:00",
"finishedTime": "2025-01-01T12:00:00+00:00",
"friendlyName": "iPhone 13 128 GB",
"imei": "352234567890123",
"osType": "ios",
"manufacturer": "Apple",
"model": null,
"identifier": "iPhone14,5",
"storage": "128 GB",
"appVersion": "3.1.4",
"htmlLink": "https://m360soft.com/reports/app/sample.html",
"tests": [
{
"testId": "TouchScreen",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "TouchTestVersion",
"title": "Version",
"result": "Passed",
"value": "Full-screen (more precise)"
}
]
},
{
"testId": "Multitouch",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "MultitouchDetectedNumberOfTouches",
"title": "Number of touches",
"result": "Passed",
"value": "3"
}
]
},
{
"testId": "Color",
"result": "Failed",
"elapsedTime": [],
"details": []
},
{
"testId": "Touch3D",
"result": "Failed",
"elapsedTime": [],
"details": []
},
{
"testId": "Speaker",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "SpeakerEar",
"title": "Ear Speaker",
"result": "Passed",
"value": "Auto"
},
{
"context": "SpeakerLoud",
"title": "Loud Speaker",
"result": "Passed",
"value": "Auto"
}
]
},
{
"testId": "Microphone",
"result": "Failed",
"elapsedTime": [],
"details": [
{
"context": "MicrophoneBottom",
"title": "Bottom",
"result": "Failed",
"value": "Manual"
},
{
"context": "MicrophoneFront",
"title": "Front",
"result": "Passed",
"value": "Manual"
},
{
"context": "MicrophoneBack",
"title": "Back",
"result": "Skipped",
"value": "Manual"
}
]
},
{
"testId": "Headphones",
"result": "Skipped",
"elapsedTime": [],
"details": []
},
{
"testId": "HardwareButton",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "HardwareButtonPower",
"title": "Power/Lock",
"result": "Passed",
"value": ""
},
{
"context": "HardwareButtonVolumeUp",
"title": "Volume Up",
"result": "Passed",
"value": ""
},
{
"context": "HardwareButtonVolumeDown",
"title": "Volume Down",
"result": "Passed",
"value": ""
},
{
"context": "HardwareButtonAction",
"title": "Action Button",
"result": "Passed",
"value": ""
}
]
},
{
"testId": "Battery",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "PreciseBatteryHealth",
"title": "Battery Health",
"result": "NA",
"value": "100%"
},
{
"context": "BatteryOriginalCapacity",
"title": "Original Capacity",
"result": "NA",
"value": "3181 mAh"
},
{
"context": "BatteryCurrentCapacity",
"title": "Current Capacity",
"result": "NA",
"value": "3181 mAh"
},
{
"context": "BatteryCycles",
"title": "Battery Cycles",
"result": "NA",
"value": "5"
}
]
},
{
"testId": "RearCamera",
"result": "Skipped",
"elapsedTime": [],
"details": []
},
{
"testId": "FrontCamera",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Autofocus",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Flash",
"result": "Failed",
"elapsedTime": [],
"details": []
},
{
"testId": "Vibration",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Storage",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "StorageTotal",
"title": "Total",
"result": "NA",
"value": "127.9 GB"
},
{
"context": "StorageFree",
"title": "Free",
"result": "NA",
"value": "112.5 GB"
},
{
"context": "StorageUsed",
"title": "Used",
"result": "NA",
"value": "15.4 GB"
}
]
},
{
"testId": "Pen",
"result": "Skipped",
"elapsedTime": [],
"details": []
},
{
"testId": "Accelerometer",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Gyroscope",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Proximity",
"result": "Skipped",
"elapsedTime": [],
"details": []
},
{
"testId": "Light",
"result": "Failed",
"elapsedTime": [],
"details": []
},
{
"testId": "Magnetic",
"result": "Skipped",
"elapsedTime": [],
"details": []
},
{
"testId": "Call",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Charge",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "ChargeWired",
"title": "Wired",
"result": "Passed",
"value": ""
},
{
"context": "ChargeWireless",
"title": "Wireless",
"result": "NA",
"value": "Not Tested"
}
]
},
{
"testId": "Wifi",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Bluetooth",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Gps",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Nfc",
"result": "Failed",
"elapsedTime": [],
"details": []
},
{
"testId": "Lidar",
"result": "Passed",
"elapsedTime": [],
"details": []
},
{
"testId": "Biometric",
"result": "Passed",
"elapsedTime": [],
"details": [
{
"context": "BiometricFaceIdCondition",
"title": "FaceID has passed self-diagnostics",
"result": "NA",
"value": ""
}
]
}
],
"gradingResult": {
"createdAt": "2025-01-01T12:00:00+00:00",
"modificationTimestamp": "2025-01-01T12:00:00+00:00",
"screen": 5,
"back": 4,
"phoneCase": 3,
"lcd": 5,
"accessories": [
"OriginalBox",
"Papers",
"UsbCable",
"Charger",
"Receipt",
"Headset",
"SimTool"
],
"comment": "Sample comment"
}
}
],
"hasMore": false,
"totalCount": 1
},
"meta": {
"success": true
}
}