• Revision Log

    Version (Software Ver.-Document Ver.)ChangelogDate
    2.2Initial draft.2019-03-18
    2.2-1Added personnel rules section.2019-03-12
    2.2-2Added common interface calls example flows.2019-03-27
    2.2-3Modified interface descriptions: Add personnel rule, upload administrator image, add/edit personnel, add/edit device administrators2019-04-11
    2.2.7-1Added interface: Delete personnel associated with specified rules, delete personnel associated with expired rules.2019-04-22
    2.3-1Added interface: Import standby image (2.3.15), import standby video (2.3.16), import MP3 format prompt files (2.3.17). Modified interface: Upload administrator/personnel image request parameters (2.1.3), add personnel (2.2.7), edit personnel (2.2.8). Added feature: WebSocket-based identification record upload, Section 4.2019-05-28
    2.6-1Added interface: Import single standby image (2.3.18), import standby video 2.3.19. Changed interface name: 2.3.15 “Import standby image” is changed to “Import standby image ZIP file”, 2.3.16 “Import standby video” is changed to “Import standby video ZIP file”2019-10-28
    2.6-21. Added common use case descriptions 2. Removed interface: “Import standby image ZIP file”, “Import standby video ZIP file”.2020-01
    2.6-3Added interface: Comparison trigger mode, trigger comparison, image-taking, screen brightness2020-03-30
    2.6-4Modified interface: 1. Added Base64 image field in Trigger comparison response body, 2. Added timeout field in Comparison trigger mode request body.2020-04-02
    2.6-5Added interface: Push identification record (http) Modified interface: Push identification record (WebSocket)2020-09-08
    2.6-6Added interface for batch operations (batch personnel import)2020-12-18
    2.6-7Appended date fields in Identification rules, modified request bodies, appended notes2021-05-13

    1. Introduction

    The Webserver service is included with devices with firmware version 2.2 or later, allowing remote access and management of devices through PC or mobile devices. This document will introduce common use case scenarios using the Webserver and details the available Rest API interfaces.

    1.1. Glossary

    TermDescrpition
    Device/TerminalFacial recognition product.
    Cloud management platformManaged cloud service for backend management of devices.
    Single host modeOne of two available operation modes: not configured to the Cloud management platform, while being able to connect to the Internet.
    Cloud service modeOne of two available operation modes: Registered with the Cloud management platform
    Device administratorDevice administrator, able to access device settings after face/password verification. Each device can support up to 10 administrators.
    Third-party serviceApplications/services by third-party developers interfacing with the devices.

    1.2. Device Operation Modes

    Terminals have 2 operating modes: Single host mode and Cloud service mod. To retrieve this information, please see 3.5.1Retrieve Device Mode. (Please review this section first before attempting to call the devices’ API.) Interface access differs with device operation mode, with differences listed below:

     Single host modeCloud service mode
    Interface authorization
    Rule management 
    Personnel management 
    Data management 
    Device management

    Note: If the device is set to Cloud service mode, please refer to “Facial Recognition Cloud Management Platform API Documentation “.

    1.3. Interface Access Preqrequisites

    The following details are required for additional development using the Webserver's Rest API interface

    1. Device Address

    The IP address and port number of the device, the default port being 8080. In this document, an example address of 192.168.1.1 will be used as the device IP.

    Note: the device can be configured to use http or https. Please refer to “Facial Recognition Product Manual”.

    1. Device Administrator Password

    A 4-digit password for accessing the device administrator page.

    Note: In Single host mode, the device administrator and password are set the point of device activation. For more details, please refer to “Facial Recognition Product Manual”. In Cloud service mode, the device administrator and password are set in the Cloud management platform and pushed to the device. For more details, please refer to “Facial Recognition Product Manual”.

    1. Interface Authorization

    The interface authorization interface must be called first before attempting to access the other interfaces. The administrator password will be a important important parameter in authorization. Please refer to 3.1 Interface Authorization.

    2. Common Use Cases

    Note: The following content is described in single-host mode, using the interfaces in this document.

    The following possible key use cases, between the device and third-party applications, are described:

    1. Third-party application device login

    2. Third-party application dispatch personnel details to device

    3. Third-party application editing of personnel details

    4. Third-party application retrieval of access records, via one of two options:

    a) Retrieval from device

    b) Automatic push from device to application

    1. Third-party application retrieval of personnel count

    2.1. Third-party application device login

    All third-party applications attempting to access the device’s Rest API will first need to gain login authorization with the terminal.

    Please refer to 3.1 Interface Authorization

    2.2. Third-party application dispatch personnel details to device

    image-20230531132703916

    1 ) Prerequisite: The third-party service is authorized to log into the terminal. Please refer to 2.1 Third-party application device login

    2 ) Determine if a new identification rule is being created or to add personnel to an existing rule

    a) If creating a new identification rule, add identification rule and retrieve its ID. Please refer to: 3.2.2 Add recognition rule

    b) If using an existing identification rule, retrieve the rule and its ID. Please refer to 3.2.3 Retrieve identification rule list

    3 ) Upload personnel image and retrieve storage path. Please refer to 3.3.7 Upload personnel image

    4 ) Add personnel details, using personnel rule ID and image storage path. Please refer to 3.3.8 Add personnel

    5 ) Further reading: Third-party application device logout.

    2.3. Third-party application editing of personnel details

    image-20230531133759594

    1. Prerequisite: The third-party service is authorized to log into the terminal. Please refer to 2.1 Third-party application device login

    2. Using personnel no. to retrieve their details and their personnel ID.

    3. Using Personnel No. and ID to edit the specific personnel’s details.

    Please refer to 3.3.10 Retrieve personnel details

    2.3.1. Retrieve Personnel List

    InterfaceRetrieve Personnel List
    Address/api/persons
    Request MethodGET
    DescriptionRetrieve personnel list, with pagination. Not supported in versions 2.3 and earlier.
    Request ParametersRequired parameters: size (Items per page), page (page number)
    Sample Requesthttp://192.168.1.1:8080/api/persons?size=1&page=0
    Sample Response{
    "timestamp": 1579496434244,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "content": [
    {
    "id": 1,
    "name": "jbdbbjdj jjj ",
    "imagePath": "/api/person/image/Jhh0001.jpeg",
    "no": "Jhh0001"
    }
    ],
    "totalElements": 1,
    "totalPages": 1,
    "first": true,
    "last": true,
    "page": 0,
    "size": 1
    }
    }

    Response Parameters

    Param. NameTypeRequiredLengthDescrip.
    entity.totalElementsLongY20Total
    entity.totalPagesIntegerY10Total pages
    entity.firstBooleanY10Is first page
    entity.lastBooleanY10Is last page
    entity.sizeLongY20Current item count
    entity.pageIntY10Current page (Starts from 0, 0 indicates first page)
    entity.content[i].idStringY32Personnel ID
    entity.content[i].nameStringY64Personnel name
    entity.content[i].noStringY64Personnel No.
    entity.content[i].imagePathStringY-Personnel image path

    2.3.2. Retrieve Personnel List

    InterfaceRetrieve Personnel List
    Address/api/persons
    Request MethodGET
    DescriptionRetrieve personnel list, with pagination. Not supported in versions 2.3 and earlier.
    Request ParametersRequired parameters: size (Items per page), page (page number)
    Sample Requesthttp://192.168.1.1:8080/api/persons?size=1&page=0
    Sample Response{
    "timestamp": 1579496434244,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "content": [
    {
    "id": 1,
    "name": "jbdbbjdj jjj ",
    "imagePath": "/api/person/image/Jhh0001.jpeg",
    "no": "Jhh0001"
    }
    ],
    "totalElements": 1,
    "totalPages": 1,
    "first": true,
    "last": true,
    "page": 0,
    "size": 1
    }
    }

    Response Parameters

    Param. NameTypeRequiredLengthDescrip.
    entity.totalElementsLongY20Total
    entity.totalPagesIntegerY10Total pages
    entity.firstBooleanY10Is first page
    entity.lastBooleanY10Is last page
    entity.sizeLongY20Current item count
    entity.pageIntY10Current page (Starts from 0, 0 indicates first page)
    entity.content[i].idStringY32Personnel ID
    entity.content[i].nameStringY64Personnel name
    entity.content[i].noStringY64Personnel No.
    entity.content[i].imagePathStringY-Personnel image path

    2.3.3 Retrieve Personnel Details

    InterfaceRetrieve Personnel Details
    Address/api/person/{no}
    Request MethodGET
    DescriptionUses personnel management module to retrieve personnel details
    Sample Requesthttp://192.168.1.1/api/person/00311
    Response ParametersParam. Name Type Required Max. Length Descrip Example
    entity.id - Y - Personnel ID, 4
    Sample Response{
    "timestamp": 1579240461114,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "id": 4,
    "name": "Derek",
    "no": "00311",
    "idCard": "110101199909091234",
    "icNumber": "123456",
    "wgNumber": "654321",
    "groupId": "paramDB0",
    "imagePath": "/api/person/image/00311.jpeg",
    "ruleId": "2618e812e1f341b8977835c604ea26c8",
    "password": ""
    }
    }
    1. Further reading: Third-party application device logout.

    2.4. Third-party application retrieval of access records

    1. Prerequisite: The third-party service is authorized to log into the terminal. Please refer to 2.1 Third-party application device login

    2. Retrieve access record. Please refer to 3.4.3 Retrieve access record

    3. Further reading: Third-party application device logout.

    2.5. Pushing access records from device to third-party application

    Device with software versions v2.3 and later support WebSocket protocol sending of access records in JSON format. This function is as described:

    1. Supported in both Cloud service and Single host mode.

    2. Real-time pushing of access records, with each record pushed on creation.

    3. Support for intermittent transmission, but with prioritization. Real-time records will be pushed first, followed by previously unpushed messages.

    4. If disruption is the result of network issues, the device will attempt to resend in 10 second

    intervals until the server returns a success response.

    1. Supports ws protocol.

    Configuring the access record push:

    1. Deactivate the default WebSocket access record push function.

    2. Save the device’s WebSocket client.

    3. Third-party application needs to provide a server that can support Websocket exchanges and respond with the specified parameters.

    4. As the device needs to confirm whether the access record has been successfully transmitted or otherwise, the third-party server needs to send the response data back to the client after receiving the data.

    Please refer to 3.4.3 Push access record

    1. Configuration guide:

    a) Go to the settings page and click on Settings → Advanced → Access Records → Access Records Transfer. This can be activated via the “Access Record Transfer” switch.

    b) If the Access Record Transfer function is activated, the IP address must be filled up, and the port number can be changed according to deployment conditions.

    2.6. Third-party application retrieval of personnel count

    When managing multiple devices at once, third-party services can obtain the number of personnel registered on each device, ensuring parity across all terminals.

    Please refer to 3.3.14 Personnel Statistics

    3. Interface Details

    3.1. Interface Authorization

    3.1.1. Login

    InterfaceLogin
    Address/api/account/login
    Request MethodGET
    DescriptionInterface access authorization, password (Administrator password). Login must be performed before calling other interfaces.
    Request Parameterspassword
    Sample Requesthttp://192.168.1.1:8080/api/account/login?password=1234
    Response ParametersDefault
    Sample ResponseSuccess response. The following is an example response, if the response parameters are default, the sample is omitted.
    {
    "timestamp": 1578552376149,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0
    }
    NoteA cookie is returned in the response headers, which should be included in later interfaces calls.

    3.1.2. Logout

    InterfaceLogout
    Address/api/account/logout
    Request MethodGET
    DescriptionUsed to log out of the current session; can also be logged out after a series of API calls are completed.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/account/logout
    Response ParametersDefault

    3.2. Rule Management

    3.2.1. Overview

    Rules refer to the access rights of personnel stored on the device. These rules include timings, and access types. Access timeframes can be customized, allowing starting and ending times to personalized on an individualized basis.

    An ID number is assigned ti each rule, retrievable from the Retrieve Rule List interace. However, in other operations to update or delete identification rules, please note that the parameter is re-named ruleId.

    3.2.2. Add Identification Rule

    InterfaceAdd Identification Rule
    Address/api/personrule/create
    Request MethodPOST
    DescriptionAdd an identification rule
    Sample RequestAn access rule to allow access from 2021-05-13 to 2021-06-13 from 0700 to 2300 hours.
    {
    "obj": {
    "name": "Face20210513",
    "timeRule": [
    {
    "action": "ALLOW",
    "customDays": [
    2,
    3,
    4,
    5,
    6
    ],
    "dayRange": {
    "end": {
    "day": 13,
    "mm": 5,
    "year": 2021
    },
    "start": {
    "day": 13,
    "mm": 6,
    "year": 2021
    }
    },
    "dayType": "CUSTOM",
    "timeRange": {
    "end": {
    "hour": 23,
    "minute": 0,
    "second": 0
    },
    "start": {
    "hour": 7,
    "minute": 0,
    "second": 0
    }
    },
    "title": "work time",
    "type": "TIMING"
    }
    ],
    "type": [
    "FACE"
    ]
    }
    }
    Response ParametersDefault
    Note"dayRange" and "customDays" are intersective. If only the date range is set, "customDays" must be filled with all weeks.

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    obj.nameStringY-Rule name“Face20210513”
    obj.timeRule[].actionStringY-Access action“ALLOW”: Allow access “DENY”: Deny access
    obj.timeRule[].customDaysintY-Effective dates[1,2,3,4,5,6,7] (1: Sunday, 2: Monday, continuing until 7: Saturday)
    obj.timeRule[].dayTypeStringY-Date time type“CUSTOM” Custom setting)
    obj.timeRule[].dayRange.startintN Start date"day": 13, "mm": 5, "year": 2021
    obj.timeRule[].dayRange.endIntN End date"day": 13, "mm": 6, "year": 2021
    obj.timeRule[].timeRange.startintY-Start time"hour": 7, "minute": 0, "second": 0
    obj.timeRule[].timeRange.endintY-End time"hour": 23, "minute": 0, "second": 0
    obj.timeRule[].titleStringY-Time rule name“work time”
    obj.timeRule[].typeStringY-Time rule type“CYCLE” Repeats weekly; “TIMING” Specified date range
    obj.typeStringY-Access method"FACE", “FACE_AND_ID", “FACE_AND_PASSPORT", “FACE_AND_GUARD", “FACE_AND_IC" Choose zero or one of the four options

    3.2.3. Retrieve Identification Rule List

    InterfaceRetrieve Identification Rule List
    Address/api/rules
    Request MethodGET
    DescriptionRetrieve identification rule list. The rule IDs are required for adding personnel to them.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/rules
    Sample Response{
    "timestamp": 1579232369388,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": [
    {
    "id": "0e903a8ec964443a8daa5c15fe35abb7",
    "name": " Default rule name "
    },
    {
    "id": "875e979c37ed45f69a7603bc647ab481",
    "name": "rule1"
    }
    ]
    }

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    entity[i].idStringY-Rule ID"0e903a8ec964443a8daa5c15fe35abb7"
    entity[i].nameStringY-Rule name"Default rule name"

    3.2.4. Retrieve All Identification Rule Details

    InterfaceRetrieve Personnel Rule
    Address/api/personrule/query
    Request MethodPOST
    DescriptionRetrieve all personnel rules
    Sample Requesthttp://192.168.1.1:8080/api/personrule/query
    Sample Response{
    "timestamp": 1579232458838,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": [
    {
    "isShowed": false,
    "obj": {
    "description": "No Descriptions",
    "id": 0,
    "name": "Default",
    "timeRule": [
    {
    "action": "ALLOW",
    "customDays": [
    4,
    1,
    7,
    6,
    5,
    2,
    3
    ],
    "dayType": "CUSTOM",
    "timeRange": {
    "end": {
    "hour": 23,
    "minute": 59,
    "second": 59
    },
    "start": {
    "hour": 0,
    "minute": 0,
    "second": 0
    }
    },
    "title": "Default Time Rule",
    "type": "CYCLE"
    }
    ],
    "type": [
    "FACE"
    ]
    },
    "ruleId": "0e903a8ec964443a8daa5c15fe35abb7"
    },
    {
    "isShowed": true,
    "obj": {
    "id": 0,
    "name": "rule1",
    "timeRule": [
    {
    "action": "ALLOW",
    "customDays": [
    1,
    2,
    3,
    4,
    5,
    6,
    7
    ],
    "dayType": "CUSTOM",
    "timeRange": {
    "end": {
    "hour": 18,
    "minute": 0,
    "second": 0
    },
    "start": {
    "hour": 9,
    "minute": 0,
    "second": 0
    }
    },
    "title": "working time",
    "type": "CYCLE"
    }
    ],
    "type": [
    "FACE"
    ]
    },
    "ruleId": "875e979c37ed45f69a7603bc647ab481"
    }
    ]
    }

    3.2.5. Update Identification Rule

    InterfaceUpdate Personnel Rule
    Address/api/personrule/update
    Request MethodPOST
    DescriptionUsing retrieved rule list to obtain ruleId, to update the specified rule. RuleID will not changed after updating.
    Sample RequestEditing rule name to “New rule1”, changing time range to 2021-05-18 to 2021-06-13, allowing access on Mondays from 08:30 to 21:30.
    {
    "ruleId" : "875e979c37ed45f69a7603bc647ab481",
    "obj": {
    "name": "New rule1",
    "timeRule": [
    {
    "action":"ALLOW",
    "customDays": [2],
    "dayRange": {
    "end": {
    "day": 13,
    "mm": 6,
    "year": 2021
    },
    "start": {
    "day": 18,
    "mm": 5,
    "year": 2021
    }
    },
    "dayType": "CUSTOM",
    "timeRange": {
    "end": {
    "hour": 21,
    "minute": 30,
    "second": 0
    },
    "start": {
    "hour": 8,
    "minute": 30,
    "second": 0
    }
    },
    "title": "new work time","type": "TIMING"
    }
    ],
    "type": [
    "FACE"
    ]
    }
    }
    Response ParametersDefault
    Note"dayRange" and "customDays" are intersective. If only the date range is set, "customDays" must be filled with all weeks.

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    ruleIdStringY Personnel rule ID"875e979c37ed45f69a7603bc647ab481" Obtained from retrieving list of rules
    obj.nameStringY-Personnel rule name“New rule1”
    obj.timeRule[].actionStringY-Access action“ALLOW” See the rules for creating a person with the same name field for details
    obj.timeRule[].customDaysint[]Y-Effective dates[1,2,3] See the rules for creating a person with the same name field for details
    obj.timeRule[].dayTypeStringY-Date time type“CUSTOM” See the rules for creating a person with the same name field for details
    obj.timeRule[].dayRange.startintN Start date"day": 18, "mm": 5, "year": 2021
    obj.timeRule[].dayRange.endintN End date"day": 13, "mm": 6, "year": 2021
    obj.timeRule[].timeRange.startintY-Start time"hour": 8,"minute": 30,"second": 0
    obj.timeRule[].timeRange.endintY-End time"hour": 21,"minute": 30,"second": 0
    obj.timeRule[].titleStringY-Time range name“new work time”
    obj.timeRule[].typeStringY-Time rule type“CYCLE” Repeats weekly; “TIMING” Specified date range
    obj.typeStringY-Access method“FACE” See the rules for creating a person with the same name field for details

     

    3.2.6. Remove Personnel Associated with Identification Rule

     

    InterfaceRemove Personnel Associated with Identification Rule
    Address/api/personrule/deletepersons
    Request MethodPOST
    DescriptionUsed to delete all persons in the specified rule before deleting the rule. If the rule is deleted directly, personnel under the previous rule will be denied access and the device will prompt: Access permission check failed.
    Request ParametersruleId:String ;Required;
    Description:Personnel rule ID ,Example:"5dc625a1effb4e44bf275d47595d8bba"
    Sample Request{
    "ruleId": "5dc625a1effb4e44bf275d47595d8bba"
    }
    Response ParametersDefault

    3.2.7. Delete Identification Rule

    InterfaceDelete Personnel Rule
    Address/api/personrule/delete
    Request MethodPOST
    DescriptionUsing ruleId retrieved from rule list to delete specified rules.
    Request ParametersruleId: String Required
    Description:Personnel rule ID Example : "875e979c37ed45f69a7603bc647ab481"
    Sample Request{
    "ruleId": "875e979c37ed45f69a7603bc647ab481"
    }
    Response ParametersDefault

    3.3. Personnel Management

    3.3.1. Overview

    Personnel details is a core aspect of use cases. When adding personnel, the no. parameter is used as a unique identifier, which is used for addition, deletion, editing and other related operations.

    3.3.2. Batch Creation Operation

    InterfaceBatch Creation Operation
    Address/api/persons/batch
    Request MethodGET
    DescriptionCreate batch addition task IDs, used for batch import for personnel details.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/persons/batch
    Response ParametersDefault
    Sample ResponseSuccess Response:
    {
    "timestamp": 1547624450381,
    "entity": { "requestId": 1 },
    "status": "200",
    "path": "",
    "code": 0
    }
    Error Response:
    {
    "timestamp": 1547624450381,
    "message": “import_in_progress”,
    "status": "400",
    "path": "",
    "code": 0``}
    NoteWhen this interface is called and a task is already underway, an error response will be returned to avoid resource conflicts.

    3.3.3. Check for In-progress Batch Tasks

    InterfaceCheck for In-progress Batch Tasks
    Address/api/persons/batch-check
    Request MethodGET
    DescriptionUsed to check if a batch process is in progress. If a batch task exists, the requestId of the batch task is returned; if the batch task does not exist, an empty entity is returned.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/persons/batch-check
    Response ParametersDefault
    Sample ResponseSuccess Response:
    Batch task found:
    {
    "timestamp": 1547624970028,
    "entity": { "requestId": 1 },
    "status": "200",
    "path": "",
    "code": 0
    }
    No batch task found:
    {
    "timestamp": 1547624880860,
    "entity": {},
    "status": "200",
    "path": "",
    "code": 0
    }

    3.3.4. Batch Import of Personnel

    InterfaceBatch Import of Personnel
    Address/api/persons/batch/import/{requestId}
    Request MethodPOST(multipart/form-data)
    DescriptionExecute batch personnel import task. The execution time of this operation depends on the number of personnel and network conditions. Importing upwards of 2000 people may take upwards of minutes to complete.
    Sample Requesthttp://192.168.1.1:8080/api/persons/batch/import/12
    {
    excel: excelfile,
    zip: zipfile,
    rule: ce8896dcdef44607b75421d6d4869397
    }
    Response ParametersDefault
    Sample ResponseSuccess Response:
    {
    "timestamp": 1547624967282,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0
    }
    Sample error response:
    {
    "timestamp": 1547625506936,
    "message": "import_finish",
    "status": "400",
    "path": "",
    "code": 0
    }
    NoteThe requestId parameter must be given and check the validity, failing the validity check will return an error. A successful or failed import of a person will not result in an full import failure, the specific failure details will be saved to a temporary table and displayed in the next step. Only one bulk import task can be executed at any one time, otherwise the new import task will be cancelled and an import_in_progress error will be returned. There is no need to re-import after the import is complete, otherwise an import_finish error is returned.

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    ruleStringY-Personnel rule ID"ce8896dcdef44607b75421d6d4869397"
    excelFileY-Excel file of PersonnelIncludes images and name fields. The Excel file is placed in the ZIP file with the personnelimages.
    ZipFileY--Personnel image ZIP file

    3.3.5. View Batch Personnel Addition Results

    InterfaceView Batch Personnel Addition Results
    Address/api/persons/batch/result/{requestId}
    Request MethodGET
    DescriptionUsed after import, display the batch import results and return to the specific page.
    Request Parameters{
    size Items per page
    page Page no.
    }
    Sample Requesthttp://192.168.1.1:8080/api/persons/batch/result/12?size=10&page=0
    Sample ResponseSuccess Response:
    With result:
    {
    "timestamp": 1547625960269,
    "entity": {
    "content": [
    {
    "NAME": "Alice",
    "UUID": "030",
    "IMAGE_PATH": "1.jpg",
    "PASSWORD": "",
    "GENDER": "",
    "ORGANIZATION_ID": "",
    "PHONE": "",
    "IC_NUMBER": "",
    "WG_NUMBER": "",
    "ID_CARD_NUMBER": "",
    "GROUP_ID": "",
    "ENTRY_DATE": "",
    "VARIABLE1": "",
    "VARIABLE2": "",
    "VARIABLE3": "",
    "VARIABLE4": "",
    "VARIABLE5": "",
    "VARIABLE6": "",
    "VARIABLE7": "",
    "VARIABLE8": "",
    "VARIABLE9": "",
    "VARIABLE10": "",
    "batchResultDescription": "Import Failed:[Failed to Upload the Image]",
    "importResult": false
    }
    ],
    "size": 1,
    "page": 0,
    "totalElements": 11,
    "totalPages": 11,
    "first": true,
    "last": false
    },
    "status": "200",
    "path": "",
    "code": 0
    }
    Without result:
    {
    "timestamp": 1547625790977,
    "entity": {
    "content": [],
    "size": 20,
    "page": 2,
    "totalElements": 11,
    "totalPages": 1,
    "first": false,
    "last": false
    },
    "status": "200",
    "path": "",
    "code": 0
    }
    Failure Response:
    {
    "timestamp": 1547625760999,
    "message": "unknow_requestid",
    "status": "400",
    "path": "",
    "code": 0
    }
    NoteRequestId needs to be accepted and its validity checked. If the validity check fails, an error is returned directly. If the requestId is valid, the result of the operation is generated by page.size (one page per 10 lines) and the return value of the batchResultDescription field will give the failure cause during the import of the specific person.

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.
    timestampStringY30Timestamp
    statusIntegerY11Status code
    codeIntegerY--
    messageStringN-Error details
    pathStringN10Path
    entity.totalElementsLongY20Total
    entity.sizeLongY20Page item count (consistent with size in Request Parameters)
    entity.pageIntY10Current page. (Starts from 0, with 0 being the first page. Matches the Request Parameters page)
    entity.content[i] .idStringN32Personnel ID
    entity.content[i].nameStringN64Personnel name
    entity.content[i].genderStringNMALE/ FEMALE/blankGender
    entity.content[i].phoneStringN64Phone no.
    entity.content[i].emailStringN64Email
    entity.content[i].entryDateLongN Entry time
    entity.content[i].createTimeLongN Creation time
    entity.content[i].updateTimeLongN Update time
    entity.content[i].imagePathStringN Personnel image path
    entity.content[i].organizationIdLongN Organization ID
    entity.content[i].organizationStringN64Organization name
    entity.content[i].avatarNameStringN64Personnel image name
    entity.content[i].batchResultDescreptionStringN255Batch import result
    entity.content[i].importResultByteY0/1Import result (0 Failure, 1 Success)

    3.3.6. Terminate Batch Personnel Import Tasks

    InterfaceTerminate Batch Personnel Import Tasks
    Address/api/persons/batch/{requestId}
    Request MethodDELETE
    DescriptionActively end a batch import task
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/persons/batch/12
    Response ParametersDefault
    Sample ResponseSuccess Response:
    {
    "timestamp": 1547625840800,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0
    }
    NoteRelease occupied resource and clear temporary table contents

    3.3.7. Upload Personnel Image

     

    InterfaceUpload Personnel Image
    Address/api/upload/image
    Request MethodPOST (multipart/form-data)
    DescriptionManages image uploads
    Request Parametersfile: Image file. (The size of the imported image is limited by the menu option "Minimum imported photo pixel limit")
    Sample Requesthttp://192.168.1.1:8080/api/upload/image
    {
    file: file
    }
    Response ParametersParam. Name Type Required Descrip. Example
    entity String Y File return address /api/device/admin/cache_image/NanoHTTPD-
    810672376_processed
    Sample ResponseSuccess Response
    {
    "timestamp": 1579238997823,
    "message": "success",
    "status": "200",
    "path": "",
    "entity": "/api/device/admin/cache_image/NanoHTTPD-810672376_processed",
    "code": 0
    }
    Error Response http status (400-599)
    {
    "timestamp": 1531200287758,
    "message": " please_check_picture_and_size",
    "path": "",
    "status": 400,
    "code": 0
    }

    3.3.8. Add Personnel

    InterfaceAdd Personnel
    Address/api/person
    Request MethodPOST
    DescriptionUses personnel management module to add personnel
    Sample Request{
    "name": "Derek",
    "no": "00311",
    "idCard": "110101199909091234",
    "ruleId": "2618e812e1f341b8977835c604ea26c8",
    "icNumber": "123456",
    "wgNumber": "654321",
    "groupId": "",
    "imagePath": "/api/device/admin/cache_image/NanoHTTPD-810672376_processed"
    }
    Response ParametersDefault

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    nameStringY64NameDerek
    noStringY20No.00311
    idCardStringY20ID No.110101199909091234 [optional parameter, leave blank if not used]
    icNumberStringY32IC card no.12345 [optional parameter, leave blank if not used]
    wgNumberStringY20WG number654321 [optional parameter, leave blank if not used]
    groupIdStringY11GroupMay be left blank
    ruleIdStringY20Personnel rule2618e812e1f341b8977835c604ea26c8
    imagePathStringY-Personnal image path/api/device/admin/cache_image/NanoHTTPD-810672376_processed"``(uses /api/upload/image)
    passwordStringN4PasswordMust be four digits, or an empty string to clear the password

    3.3.9. Retrieve Personnel List

    InterfaceRetrieve Personnel List
    Address/api/persons
    Request MethodGET
    DescriptionRetrieve personnel list, with pagination. Not supported in versions 2.3 and earlier.
    Request ParametersRequired parameters: size (Items per page), page (page number)
    Sample Requesthttp://192.168.1.1:8080/api/persons?size=1&page=0
    Sample Response{
    "timestamp": 1579496434244,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "content": [
    {
    "id": 1,
    "name": "jbdbbjdj jjj ",
    "imagePath": "/api/person/image/Jhh0001.jpeg",
    "no": "Jhh0001"
    }
    ],
    "totalElements": 1,
    "totalPages": 1,
    "first": true,
    "last": true,
    "page": 0,
    "size": 1
    }
    }

    Response Parameters

    Param. NameTypeRequiredLengthDescrip.
    entity.totalElementsLongY20Total
    entity.totalPagesIntegerY10Total pages
    entity.firstBooleanY10Is first page
    entity.lastBooleanY10Is last page
    entity.sizeLongY20Current item count
    entity.pageIntY10Current page (Starts from 0, 0 indicates first page)
    entity.content[i].idStringY32Personnel ID
    entity.content[i].nameStringY64Personnel name
    entity.content[i].noStringY64Personnel No.
    entity.content[i].imagePathStringY-Personnel image path

    3.3.10. Retrieve Personnel Details

    InterfaceRetrieve Personnel Details
    Address/api/person/{no}
    Request MethodGET
    DescriptionUses personnel management module to retrieve personnel details
    Sample Requesthttp://192.168.1.1/api/person/00311
    Response ParametersParam. Name Type Required Descrip.
    entity.id - Y Personnel ID
    Sample Response{
    "timestamp": 1579240461114,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "id": 4,
    "name": "Derek",
    "no": "00311",
    "idCard": "110101199909091234",
    "icNumber": "123456",
    "wgNumber": "654321",
    "groupId": "paramDB0",
    "imagePath": "/api/person/image/00311.jpeg",
    "ruleId": "2618e812e1f341b8977835c604ea26c8",
    "password": ""
    }
    }

    3.3.11. Edit Personnel

    InterfaceEdit Personnel
    Address/api/person/{no}
    Request MethodPOST
    DescriptionUses personnel management module to edit, updating personnel name, ID no., IC no., WG card no., etc.
    Sample Request{
    "name": "DerekW",
    "no": "00311",
    "idCard": "130123123412121234",
    "id": 4,"icNumber": "56789",
    "wgNumber": "98765",
    "groupId": "",
    "ruleId": "2618e812e1f341b8977835c604ea26c8",
    "imagePath": "/api/device/admin/cache_image/NanoHTTPD-810672376_processed"}
    Response ParametersDefault

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    idIntegerY20Personnel ID4 (Retrieved from personnel list or personnel details interfaces)
    nameStringY64NameDerekW
    noStringY20No.00311 (non-editable)
    idCardStringN20ID No.130123123412121234
    icNumberStringN32IC card no.56789
    wgNumberStringN20WG number98765
    groupIdIntegerN11Group(May be left blank)
    ruleIdIntegerY20Personnel rule2618e812e1f341b8977835c604ea26c8
    imagePathStringY-Personnal image path/api/device/admin/cache_image/NanoHTTPD-810672376_processed (Uses /api/upload/image)
    passwordStringN4Password2580 (Selectable password. Passwords must be 4-digit numbers or left blank if clearing password)

    3.3.12. Delete Personnel

    InterfaceDelete Personnel
    Address/api/person/{no}
    Request MethodDELETE
    DescriptionDelete personnel. This operation is irreversible.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1/api/person/00311
    Response ParametersDefault

    3.3.13. Clear Personnel

    InterfaceClear Personnel
    Address/api/persons
    Request MethodDELETE
    DescriptionClears all personnel
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1/api/persons
    Response ParametersDefault

    3.3.14. Personnel Statistics

    InterfacePersonnel Statistics
    Address/api/persons/count
    Request MethodGET
    DescriptionRetrieve personnel total statistics
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/persons/count
    Response ParametersParam. Name Type Required Max. Length Descrip. Example
    entityI nteger Y 10 Personnel count 2000
    Sample Response{
    "timestamp": 1531200287758,
    "message": "success",
    "path": "",
    "status": 200,
    "code": 0,
    "entity": 2000
    }

    3.4. Data Management

    3.4.1. Push Access Record (Http)

    InterfaceAccess Record via Http
    DescriptionThe server side provides the interface address to receive the push (POST); the identification record is pushed to the server side in real time and the server side returns a success response.
    Push Sample{
    "accessRecordId":"8f1a839593e94f90913daa994b383610",
    "entity":{
    "avatars":{
    "NEAR_INFRARED":[
    "file://HJT_20200908144101826_nir.jpeg"
    ],
    "VISIBLE_LIGHT":[
    "file://HJT_20200908144101826.jpeg"
    ]
    },
    "deviceInfo":{
    "name":"HJTZJ 0908",
    "sn":"FC241118370031"
    },
    "extension":{
    "temperature":"36.2",
    "mask":"false",
    "temperatureStatus":"true"
    },
    "id":"8f1a839593e94f90913daa994b383610",
    "passMode":"FACE",
    "personInfo":{
    "groupId":"paramDB0",
    "groupName":"默认",
    "icNumber":"36C172E065",
    "idCard":"413026198803189337",
    "name":"HJT",
    "no":"3",
    "organizationId":0,
    "ruleId":"1",
    "tenantId":0,
    "verificationPassword":"b59c67bf196a4758191e42f76670ceba",
    "version":0
    },
    "resultType":"TERMINAL_VALIDATION_PASS",
    "score":"92.17443",
    "syncTime":1599547261826
    },
    "livePhoto":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
    "faceResultType":"faceCheckSuccess_bodyTempNormal_right"
    }
    Response ParametersParam. Name Type Required Descrip.
    result String Y Success : indicates successful receipt by third-party service
    Sample ResponseSuccess Response httpStatus code: 200 {"result":"success"}

    Push Parameters

    Param. NameTypeRequiredDescrip.
    accessRecordIdStringYIdentitication record ID
    avatarsStringYImage path
    deviceInfoStringYDevice name, Serial No.
    idStringYIdentitication record ID
    passModeStringYFACE:Face FACE_AND_ID:Face and ID
    personInfoStringYPersonnel details
    identifyCardStringNID card details
    resultTypeStringYComparison result: FACIAL_COMPARISON_PASS:Success FACIAL_COMPARISON_NOT_PASS:Failed
    scoreStringYComparison score
    rejectReasonStringNRejection cause
    syncTimeStringYComparison timestamp
    extensionStringNTemperature details
    livePhotoStringYVisible light Base64 image
    faceResultTypeStringNAuthentication result, including face matching, temperature and access permissions

    3.4.2. Push Access Record (WebSocket)

    InterfacePush Access Record via WebSocket
    DescriptionAccess records are pushed to the server in real time and the server is expected to send a successful response. Access records that fail to transmit are resent in 10s cycles until a successful response is received from the server.
    Sample Request{
    "accessRecordId":"073d94cb404a49808a2e576573aa4ad3",
    "entity":{
    "avatars":{
    "NEAR_INFRARED":[
    "file://HJT_20200908143618044_nir.jpeg"
    ],
    "VISIBLE_LIGHT":[
    "file://HJT_20200908143618044.jpeg"
    ]
    },
    "deviceInfo":{
    "name":"HJTZJ 0908",
    "sn":"FC241118370031"
    },
    "extension":{
    "temperature":"36.4",
    "mask":"false",
    "temperatureStatus":"true"
    },
    "id":"073d94cb404a49808a2e576573aa4ad3",
    "passMode":"FACE",
    "personInfo":{
    "groupId":"paramDB0",
    "groupName":"默认",
    "icNumber":"36C172E065",
    "idCard":"413026198803189337",
    "name":"HJT",
    "no":"3",
    "organizationId":0,
    "ruleId":"1",
    "tenantId":0,
    "verificationPassword":"b59c67bf196a4758191e42f76670ceba",
    "version":0
    },
    "resultType":"TERMINAL_VALIDATION_PASS",
    "score":"92.20114",
    "syncTime":1599546978044
    },
    "livePhoto":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
    "faceResultType":"faceCheckSuccess_bodyTempNormal_right"
    }
    Response ParametersParam. Name Type Required Descrip.
    accessRecordId String Y Identitication record ID
    Sample ResponseSuccess Response
    {"accessRecordId":"cbc86109debf4ff9ba7c32a43743cdbc"}

    Push parameters

    Param. NameTypeRequiredDescrip.
    accessRecordIdStringYIdentitication record ID
    avatarsStringYImage path
    deviceInfoStringYDevice name,SERIAL NO.
    idStringYSame accessRecordId
    passModeStringYFACE:Face FACE_AND_ID: Face + ID
    personInfoStringYPersonnel details
    identifyCardStringNID card details
    resultTypeStringYComparison result: FACIAL_COMPARISON_PASS:Success FACIAL_COMPARISON_NOT_PASS:Failed
    scoreStringYComparison score
    rejectReasonStringNRejection cause
    syncTimeStringYComparison timestamp
    extensionStringNTemperature details
    livePhotoStringYVisible light Base64 image
    faceResultTypeStringNAuthentication result, including face matching, temperature and access permissions

     

     

    3.4.3. Retrieve Access Record

     

    InterfaceRetrieve Access Record
    Address/api/access-record
    Request MethodGET
    DescriptionRetrieve access record from device
    Sample Requesthttp://192.168.1.1:8080/api/access-record?resultType=0&page=0&size=1
    Sample Response{
    "timestamp": 1579247335202,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "size": 1,
    "totalElements": 30,
    "totalPages": 30,
    "page": 0,
    "first": true,
    "last": false,
    "content": [
    {
    "avatars": {
    "NEAR_INFRARED": [
    "/api/access-record/image/RGVyZWtXXzIwMjAwMTE3MTU0MzIyODQ4X25pcg%3D%3D.jpeg"
    ],
    "VISIBLE_LIGHT": [
    "/api/access-record/image/RGVyZWtXXzIwMjAwMTE3MTU0MzIyODQ4.jpeg"
    ]
    },
    "deviceInfo": {
    "name": "",
    "sn": "FC242218490096"
    },
    "id": "ca20017a13a54b52b4507b21e6a43cb7",
    "passMode": "FACE",
    "personInfo": {
    "avatars": {
    "VISIBLE_LIGHT": [
    "/api/access-record/registered_image/00311.jpeg"
    ]
    },
    "groupId": "paramDB0",
    "groupName": "Default",
    "icNumber": "56789",
    "idCard": "130123123412121234",
    "name": "DerekW",
    "no": "00311",
    "organizationId": 0,
    "ruleId": "2618e812e1f341b8977835c604ea26c8",
    "tenantId": 0,
    "verificationPassword": "",
    "version": 0,
    "wgNumber": "98765"
    },
    "resultType": "TERMINAL_VALIDATION_PASS",
    "score": "90.876",
    "syncTime": 1579247002848
    }
    ]
    }
    }

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    nameStringN64Name-
    startTimetimestampN-Start timeTimestamp in milliseconds
    endTimetimestampN-End timeTimestamp in milliseconds
    resultTypeintN-Access resultAccess authenticated TERMINAL_VALIDATION_PASS:0 Not authenticated TERMINAL_VALIDATION_FAILURE:1
    pageIntegerY-Total pages, starting from 00
    sizeIntegerY-10 Items per page, default 101

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    entity.totalElementsIntegerY-Total item count1024
    entity.totalPagesIntegerY10Total pages20
    entity.pageIntergetY10Current page0
    entity.sizeIntergetY10Items per page10
    entity.firstBooleanY-Is first pagetrue
    entity.lastBooleanY-Is laste pagefalse
    entity.contentSizefloatY-Access record size1.2
    entity.content[i].idStringY32Content idb4b5bfecdc42435880257b6fac574862
    entity.content[i].passModeStringY-Access methodFACE FaceFACE_AND_ID Face + IDFACE_AND_PASSPORT Face + PassportFACE_AND_GUARD Face + WG CardFACE_AND_IC Face + IC card
    entity.content[i].resultTypeStringY-Access resultAccess authenticated TERMINAL_VALIDATION_PASS:0 Not authenticated TERMINAL_VALIDATION_FAILURE:1
    entity.content[i].rejectReasonStringN-Rejection causeInvalid face match FACIAL_COMPARISON_NOT_PASSBlacklist access rejection BLACKLIST_EXCEEDS_REFUSE Personnel rule PERSONNAL_RULE_VALIDATION_FAILUREFingerprint validation failed FINGERPRINT_VALIDATION_FAILURE
    entity.content[i].syncTimeLongY-Verification timestamp1529719248862
    entity.content[i].scoreStringY-Visible light score0.9
    entity.content[i].nirScoreStringN-Infrared score0.8
    entity.content[i].typeStringN-Access typeIN_TYPE
    entity.content[i].avatarsList< String >Y-Image{ "VISIBLE_LIGHT":[ "http://192.168.1.1/ocfs/file/download/xxx" ] }
    entity.content[i].deviceInfo.snStringY16Device serial 
    entity.content[i].personInfo.idStringN- bb1d96a56faa4332a03f5fba8c594f4f
    entity.content[i].personInfo.groupIdStringN32Recognition parameters64b5bfecdc42435880257b6fac574862
    entity.content[i].personInfo.icNumberStringN-IC card no.-
    entity.content[i].personInfo.wgNumberStringN-WG number-
    entity.content[i].nameStringN-Name-
    entity.content[i].personInfo.noStringN-Personnel No.-
    entity.content[i].personInfo.ruleIdStringN-Rule ID-
    entity.content[i].personInfo.ruleNameStringN-Rule name-
    entity.content[i].identifyCard.imageUrlStringN-ID image path-
    entity.content[i].identifyCard.addressStringN-Residential address-
    entity.content[i].identifyCard.birthdayStringN-BirthdateBirthdate (YYYY-MM-DD)
    entity.content[i].``identifyCard.idCardStringN-ID No.-
    entity.content[i].``identifyCard.nationStringN-Nationality-
    entity.content[i].identifyCard.countryCodeStringN-Country code-
    entity.content[i].``identifyCard.genderStringN-GenderGender (MALE,FEMALE)
    entity.content[i].identifyCard.signBeginStringN-Issue dateIssue date (YYYY-MM-DD)
    entity.content[i].identifyCard.signEndStringN-Expiry dateExpiry date (YYYY-MM-DD)
    entity.content[i].identifyCard.issuePlaceStringN-Place of IssuePlace of Issue
    entity.content[i].identifyCard.signOrgStringN-Issuing AuthorityIssuing Authority

    3.4.4. Delete Access Record

    Interface3.4.4. Delete Access Record
    Address/api/access-record
    Request MethodDELETE
    DescriptionDelete all access records
    Sample RequestDeleting all failed records on 2020-01-17 from 0000 to 1600 hours. http://192.168.1.1:8080/api/access-record?startTime=1579190400000&endTime=1579248000000&resultType=1
    Response ParametersDefault

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    nameStringN64Name-
    startTimetimestampN-Start date-
    endTimetimestampN-End date-
    resultTypeStringN-Access resultAccess authenticatedTERMINAL_VALIDATION_PASS:0Not authenticated``TERMINAL_VALIDATION_FAILURE:1
    pageIntegerY-Page no., starting from 00
    sizeIntegerY-Items per page, defaults to 10-

    3.4.5. Retrieve Operation Log Size

    InterfaceRetrieve Operation Log Size
    Address/api/log/size
    Request MethodGET
    DescriptionRetrieve Operations Log Size
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/log/size
    Response ParametersParam. Name Type Required Max. Length Descrip. Example
    entity String Y - Request result '18678710'
    Sample ResponseSuccess Response
    {
    "timestamp": 1531200287758,
    "message": "success",
    "path": "",
    "entity": '18678710',
    "status": 200,
    "code": 0
    }
    Error Response http status(400-599)
    {
    "timestamp": 1531200287758,
    "message": "Error",
    "path": "",
    "status": 400,
    "code": 0
    }

     

    InterfaceRetrieve Test Log Download Link
    Address/api/test-log/export
    Request MethodGET
    DescriptionCompress the test log and return the ZIP file name
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/test-log/export
    Response Parametersentity: String Required Description: Returned file name Example: test_log_1551857211265.zip
    Sample ResponseSuccess Response
    {
    "timestamp": 1531200287758,
    "message": "success",
    "path": "",
    "entity": "test_log_1551857211265.zip”,
    "status": 200,
    "code": 0
    }
    Error Response http status (400-599)
    {
    "timestamp": 1531200287758,
    "message": "Error",
    "path": "",
    "status": 400,
    "code": 0
    }

    3.4.7. Download Test Log

    InterfaceDownload Test Log
    Address/api/download/test-log
    Request MethodGET
    DescriptionDownload Test Log
    Request ParametersParam. Name Type Max. Length Required Descrip. Example
    fileName String 60 Y File name test_log_1551857211265.zip
    Sample Requesthttp://192.168.1.1:8080/api/download/test-log?fileName=test_log_1551857211265.zip
    Response BodyFile stream

    3.4.8. Clear Test Log

    InterfaceClear Test Log
    Address/api/test-log
    Request MethodDELETE
    DescriptionClear Test Log
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/test-log
    Response ParametersDefault
    InterfaceRetrieve Log Download Link
    Address/api/log/export
    Request MethodGET
    DescriptionRetrieve Log Download Link
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/log/export
    Response ParametersParam. Name Type Required Max. Length Descrip. Example
    entity String Y - Returned file name bboxlog-20190306155554.tar.gz
    Sample ResponseSuccess Response
    {
    "timestamp": 1531200287758,
    "message": "success",
    "path": "",
    "entity": "bboxlog-20190306155554.tar.gz",
    "status": 200,
    "code": 0
    }

    3.4.10. Log Download

    InterfaceLog Download
    Address/api/download/log
    Request MethodGET
    DescriptionLog Download
    Request ParametersParam. Name Type Max.Length Required Descrip. Example fileName String 60 Y File name bboxlog-20190306155554.tar.gz
    Sample Requesthttp://192.168.1.1:8080/api/download/log?fileName=bboxlog-20190306155554.tar.gz
    Response BodyFile stream

    3.4.11. Clear Log

    InterfaceClear Log
    Address/api/log
    Request MethodDELETE
    DescriptionClear log
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/log
    Response ParametersDefault

    3.5. Device Management

    3.5.1. Retrieve Device Mode

    InterfaceRetrieve Device Settings
    Address/api/setting
    Request MethodGET
    DescriptionRetrieve device settings, including language and mode
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/setting
    Response ParametersParam. Name Type Required Max. Length Descrip. Example
    entity.lang String Y - Device language zh-CN
    entity.mode String Y - Device mode standalone
    Sample Response{
    "timestamp": 1579400150494,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "lang": "zh_CN",
    "mode": "standalone"
    }
    }

    3.5.2. Add Device Administrator

    InterfaceAdd Device Administrator
    Address/api/device/admin
    Request MethodPOST
    DescriptionAdd administrator to device
    Sample Request{
    "imagePath": "/api/device/admin/cache_image/NanoHTTPD-967652038_processed",
    "name": "WancyL",
    "password": "0987"
    }
    Response ParametersDefault
    Sample ResponseSuccess Response
    {
    "timestamp": 1579252901643,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "uuid": "dcd4147b65dc42e58f64b5a065023b9e"
    }
    Error Response http status (400-599)
    {
    "timestamp": 1531200287758,
    "message": "add_admin_failed",
    "path": "",
    "status": 400,
    "code": 0
    }

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    nameStringY64NameWancyL
    imagePathStringY-Image/api/device/admin/cache_image/NanoHTTPD-967652038_processed (Uses /api/upload/image)
    passwordStringY4Password, 4-digit no.0987 (No restrictions on weak passwords, but is discouraged)

    3.5.3. Retrieve Device Administrator List

    InterfaceRetrieve Administrator List from Device
    Address/api/device/admins
    Request MethodGET
    DescriptionUp to 10 administrators
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/device/admins
    Sample Response{
    "timestamp": 1579254755093,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "content": [
    {
    "id": 1,
    "name": "DerekM",
    "imagePath": "/api/device/admin/image/95104f315e6849a0adce9d980de9e7ab",
    "uuid": "95104f315e6849a0adce9d980de9e7ab"
    },
    {
    "id": 5,
    "name": "WancyL",
    "imagePath": "/api/device/admin/image/406ce43ec276456b83a5141ac3876b99",
    "uuid": "406ce43ec276456b83a5141ac3876b99"
    },
    ]
    }
    }

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    entity.content[i].nameStringY10Administrator name"WancyL"
    entity.content[i].imagePathStringY200Administrator image"/api/device/admin/image/406ce43ec276456b83a5141ac3876b99"
    entity.content[i].idintegerY20ID5 (For editing admin. Personnel)

    3.5.4. Retrieve Device Administrator Details

    InterfaceRetrieve Device Administrator Details
    Address/api/device/admin/{id}
    Request MethodGET
    DescriptionRetrieve device administrator details
    Sample Requesthttp://192.168.1.1:8080/api/device/admin/1
    Sample Response{
    "timestamp": 1579254105833,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "name": "WancyL",
    "imagePath": "/api/device/admin/image/406ce43ec276456b83a5141ac3876b99",
    "password": "",
    "uuid": "406ce43ec276456b83a5141ac3876b99"
    }
    }

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    entity.nameStringY64NameWancyL
    entity.imagePathStringY200Image path/api/device/admin/image/406ce43ec276456b83a5141ac3876b99
    entity.passwordStringY20PasswordSecured. Not displayed.

    3.5.5. Edit Device Administrator

    InterfaceEdit Device Administrator
    Address/api/device/admin/{id}
    Request MethodPOST
    DescriptionEdit existing administrator details
    Sample Requesthttp://192.168.1.1:8080/api/device/admin/5
    {
    "imagePath": "/api/device/admin/cache_image/NanoHTTPD-2080001498_processed",
    "name": "WancyL2",
    "password": "1111",
    "id":5
    }
    Response ParametersDefault

    Request Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    idIntY20ID5
    nameStringY64NameWancyL2
    imagePathStringY-Image/api/device/admin/cache_image/NanoHTTPD-2080001498_processed (Uses /api/upload/image)
    passwordStringY4Password, 4-digit code1111 (No restrictions on weak passwords, but is discouraged)

    3.5.6. Retrieve Device Summary

     

    InterfaceRetrieve Device Details
    Address/api/device
    Request MethodGET
    DescriptionRetrieve device current’s details
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/device
    Sample ResponseSuccess Response
    {
    "timestamp": 1579495638494,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "entity": {
    "name": "",
    "limit": "20",
    "type": "4001",
    "sn": "FC242218490096",
    "softwareVersion": "BFRT_3G_MP_2.3.2.5.d.s.u_11081321",
    "algorithmVersion": "7.2",
    "hardwareVersion": "D20",
    "wirelessAddress": "4C:E5:AE:00:2A:28",
    "wirelineAddress": "4C:E5:AE:00:3E:27"
    }
    }
    Error Response http status(400-599)
    {
    "timestamp": 1531200287758,
    "message": "Error",
    "path": "",
    "status": 400,
    "code": 0
    }

    Response Parameters

    Param. NameTypeRequiredMax. LengthDescrip.Example
    entity.nameStringN-Device nameAAA
    entity.limitInteger--Personnel upper limit20000
    entity.typeInteger--Device type4001
    entity.snString--Serial no.232121212
    entity.softwareVersionString--Software ver.3.2.3
    entity.algorithmVersionString--Algorthim ver.6.5
    entity.hardwareVersionString--Hardware ver.6.5
    entity.wirelessAddressString--Wireless MAC address00-00-00-00
    entity.wirelineAddressString--Wired MAC address00-00-00-00

    3.5.7. Export Settings

    InterfaceExport Settings
    Address/api/device/config/setting/export
    Request MethodGET
    DescriptionExport current settings on device
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/device/config/setting/export
    Sample ResponsePlease refer to 4.1 Setting Export Interface XML Content

    3.5.8. Import Settings

    InterfaceImport Settings
    Address/api/device/config/setting/import
    Request MethodPOST (multipart/form-data)
    DescriptionImport saved device settings
    Request Parametersfile: XML file to import
    Sample Requesthttp://192.168.1.1:8080/api/device/config/setting/import{file: file``}
    Response ParametersDefault

    3.5.9. Reset Device Settings

    InterfaceReset Device Settings
    Address/api/operation/restore
    Request MethodGET
    DescriptionResetting settings will not affect personnel and access record data. Resetting settings will not affect device mode. Re-registration is not required.
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/operation/restore
    Response ParametersDefault

    3.5.10. Reboot Device

    InterfaceReboot Device
    Address/api/operation/reboot
    Request MethodGET
    DescriptionReboot device
    Request ParametersDefault
    Sample Requesthttp://192.168.1.1:8080/api/operation/reboot
    Response ParametersDefault

    3.5.11. Door control

    InterfaceDoor control
    Address/api/operation/open
    Request MethodGET
    DescriptionDevice door control interface. Can be set to open temporarily or unlocked.
    Request ParametersParam. Name Type Required Descrip. Example
    keep Boolean Y true:Full unlock , false: Temporary unlock true
    Sample Requesthttp://192.168.1.1:8080/api/operation/open?keep=true
    Response ParametersDefault

    3.5.12. Comparison Trigger

    InterfaceComparison trigger
    Address/api/startmatchprocess
    Request MethodGET
    DescriptionA direct call to this interface (3.5.13) can also change the trigger method to a manual trigger. Generate a valid comparison result only once and return the result
    Sample Requesthttp://192.168.1.1:8080/api/startmatchprocess
    Response ParametersDefault
    Sample ResponseSuccess Response
    {
    "timestamp": 1585305818093,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "data": {
    "base64Img": {
    "NEAR_INFRARED": [
    "base64imagedata..."
    ],
    "VISIBLE_LIGHT": [
    "base64imagedata..."
    ]
    },
    "avatars": {
    "VISIBLE_LIGHT": [
    "file://url.jpeg"
    ],
    "NEAR_INFRARED": [
    "file://url.jpeg"
    ]
    },
    "deviceInfo": {
    "name": "",
    "sn": "FC6NLM19330036"
    },
    "id": "3fc8bcd4f77a40c8956b7a6164d54e32",
    "passMode": "FACE",
    "personInfo": {
    "groupId": "paramDB0",
    "groupName ": "",
    "icNumber": "",
    "name": "zyjname",
    "no": "m1234",
    "organizationId": 0,
    "ruleId":"a959ce1c67fd46dc92a8c1e458af4aa2",
    "tenantId": 0,
    "verificationPassword": "",
    "version": 0,
    "wgNumber": ""
    },
    "resultType": "TERMINAL_VALIDATION_PASS",
    "score": "83.29581",
    "syncTime": 1585305817799
    }
    }

    3.5.13. Comparison Trigger Mode

    InterfaceComparison Trigger Mode
    Address/api/matchprocess
    Request MethodGET
    DescriptionDevices will automatically verify faces by default. This interface can be used to deactivate the automated trigger.
    Request ParametersParam. Name Type Required Descrip.
    isauto String Y Is matching automatic,true false
    Sample Requesthttp://192.168.1.1:8080/api/matchprocess?isauto=false
    Response ParametersDefault

    3.5.14. Take Picture

    InterfaceTake picture
    Address/api/camera/snapshot
    Request MethodGET
    DescriptionVisible-light photo is taken by the device. No face matching is performed.
    Request ParametersParam. Name Type Required Descrip.
    compression String N true false If image is compressed. Defaults to true.
    imgMostSizeKb int N Max. file size. Default size is 50kb
    Sample Requesthttp://192.168.1.1:8080/api/camera/snapshot
    Sample ResponseSuccess Response
    {
    "timestamp": 1545708721414,
    "message": "success",
    "status": "200",
    "path": "",
    "code": 0,
    "imagebase64/jpeg":"Base64imagedata..."
    }

    3.5.15. Screen and Fill-light Brightness

    InterfaceScreen and Fill-light Brightness
    Address/api/setting/brightness
    Request MethodGET
    DescriptionAdjust device screen amd fill-light brightness
    Sample Requesthttp://192.168.1.1:8080/api/setting/brightness?screen=100
    Response ParametersDefault

    Request Parameters

    Param. NameTypeRequiredDescrip.
    screenintNComparison-mode screen brightness. Value range from 0-255
    basescreenintNStandby mode screen brightness. Value range 0-255
    ledintNComparison-mode fill-light brightness. Value range from 0-255
    baseledintNStandby mode fill-light brightness. Value range 0-255

    4. Appendix

    4.1. Settings Export XML Content

    {"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"About Device","limit":0,"readonly":false,"required":true,"unique":true},"key":"about_device","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"Name","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.deviceName","value":""},{"descriptor":{"ui":{"type":"TEXT"},"eplain":"Device Type","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.bbox.devicetype","value":"4001"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Serial No.","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.setting.deviceSn","value":"FC242218490096"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Software Version","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.bbox.sw.version","value":"BFRT_3G_MP_2.3.2.5.d.s.u_11081321"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Algorithm Version","limit":0,"readonly":true,"required":true,"unique":true},"key":"bbox.setting.algorithmVersion","value":"7.2"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Hardware Version","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.bbox.hw.version","value":"D20"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Wireless MAC Address","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.bbox.wifimac","value":"4C:E5:AE:00:2A:28"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Wired MAC Address","limit":0,"readonly":true,"required":true,"unique":true},"key":"ro.bbox.ethmac","value":"4C:E5:AE:00:3E:27"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Personnel Capacity","limit":0,"readonly":true,"required":true,"unique":true},"key":"persist.license.maxmember","value":"20"}],"name":"About Device"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"First-time Verification","limit":0,"readonly":false,"required":true,"unique":true},"key":"recognition_trigger_mode","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"IC/ID Trigger","value":"12"},{"name":"External Trigger","value":"48"},{"name":"Auto-trigger","value":"63"}],"type":"RADIO"},"explain":"First-time Verification","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.core.fr.app.foreground_trigger2","value":"63"}],"name":"First-time Verification"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Access Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"common_setting","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"简体中文","value":"0"},{"name":"English","value":"1"}],"type":"SELECT"},"explain":"System Langauge","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.language","value":"0"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Sound","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.isSilent","value":"true"},{"descriptor":{"ui":{"max":15,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Language","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.voiceNumber","value":"11"},{"descriptor":{"ui":{"max":255,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Brightness","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.brightness","value":"102"}],"name":"Access Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Facial Recognition Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"face_recognize_setting","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"Image Quality Analysis","limit":0,"readonly":false,"required":true,"unique":true},"key":"quality_check","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Image Quality Analysis Switch","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.qualityJudgment","value":"true"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Tilt limit","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.angleLimit","value":"true"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Ambiguity threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.fuzzinessLimit","value":"100"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Occlusion threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.obscuredLimit","value":"100"}],"name":"Image Quality Analysis"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Veriification Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"verify_mode","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"1:1 Mode","value":"0"},{"name":"1:N Mode","value":"1"},{"name":"Hybrid Mode","value":"2"}],"type":"RADIO"},"explain":"Veriification Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.verificationmode","value":"2"}],"name":"Veriification Mode"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Scenario Profile","limit":0,"readonly":false,"required":true,"unique":true},"key":"profiles_select","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Quick Mode","value":"0"},{"name":"Secure Mode","value":"1"},{"name":"Custom Mode","value":"2"}],"type":"RADIO"},"explain":"Profile Selection","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.matchlevel","value":"1"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Setting Parameters","limit":0,"readonly":false,"required":true,"unique":true},"key":"cumstom_profiles_param_settings","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"Liveness Detection Parameters","limit":0,"readonly":false,"required":true,"unique":true},"key":"live_param","value":{"configList":[{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Liveness Detection Visible Light Threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.matchThreshold.liveThreshold","value":"50"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Liveness Detection Infrared Threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.matchThreshold.liveNirthreshold","value":"50"}],"name":"Liveness Detection Parameters"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"1:N Mode Parameters","limit":0,"readonly":false,"required":true,"unique":true},"key":"recognize_1:N_param","value":{"configList":[{"descriptor":{"ui":{"items":[{"value":"Default"}],"type":"SELECT"},"explain":"Identification Parameter Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.recognizeDB.id","value":"Default"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Identification Parameters","limit":0,"readonly":false,"required":true,"unique":true},"key":"recognize_param_db","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"Default","limit":0,"readonly":false,"required":true,"unique":true},"key":"paramDB0","value":{"configList":[{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Visible Light Threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"persist.visibleLight.matchThreshold","value":"80"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Infrared Threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"persist.nir.matchThreshold","value":"0"}],"name":"Default"}}],"name":""}}],"name":"1:N Mode Parameters"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"1:1 Mode Parameters","limit":0,"readonly":false,"required":true,"unique":true},"key":"recognize_1:1_param","value":{"configList":[{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Visible Light Threshold(%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.matchThreshold.one.threshold","value":"70"}],"name":"1:1 Mode Parameters"}}],"name":"Facial Recognition Setting Parameters"}}],"name":"Scenario Selection"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Repeated Recognition Timeframe","limit":0,"readonly":false,"required":true,"unique":true},"key":"face_duplicate_recognition","value":{"configList":[{"descriptor":{"ui":{"max":300,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Repeated Recognition Timeframe (S)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.repeat.recognition.time"}],"name":"Repeated Recognition Timeframe"}}],"name":"Facial Recognition Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Camera Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"camera_setting","value":{"configList":[{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Base Brightness (%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.baseLed","value":"3"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Recognition Mode Brightness (%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.ledValue","value":"10"},{"descriptor":{"ui":{"max":30,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Recognition Mode Duration (s)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.ledTime","value":"3"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Recognition Mode Sensitivity (%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.ledSensitivity","value":"80"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Infrared Lamp Adjustment (%)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.led.nir.value","value":"100"},{"descriptor":{"ui":{"max":180,"min":30,"step":10,"type":"SLIDEBAR"},"explain":"Recognition Distance (Unit: cm)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.MaxRecognizeDistance","value":"180"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Visible Light Camera Exposure","limit":0,"readonly":false,"required":true,"unique":true},"key":"visible_exposure","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Automatic","value":"0"},{"name":"Manual","value":"1"}],"type":"SELECT"},"explain":"Exposure Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.exposure.light.type","value":"0"},{"descriptor":{"ui":{"max":30,"min":-30,"step":1,"type":"SLIDEBAR"},"explain":"Manual Exposure","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.exposure.light","value":"0"}],"name":"Visible Light Camera Adjustment"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Visible Light Camera Exposure","limit":0,"readonly":false,"required":true,"unique":true},"key":"nir_exposure","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Automatic","value":"0"},{"name":"Manual","value":"1"},{"name":"Smart Mode","value":"2"}],"type":"SELECT"},"explain":"Exposure Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.exposure.nir.type","value":"2"},{"descriptor":{"ui":{"max":30,"min":-30,"step":1,"type":"SLIDEBAR"},"explain":"Manual Exposure","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.exposure.nir","value":"0"}],"name":"Visible Light Camera Exposure"}}],"name":"Camera Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"More Comparison Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"compare_mode","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"ID Comparison Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"again_verify","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Permissions List","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.local.verify.toggle","value":"false"}],"name":"ID Comparison Settings"}},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Fingerprint","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.fingerprint","value":"false"},{"descriptor":{"ui":{"items":[{"name":"Face or Fingerprint","value":"0"},{"name":"Face and Fingerprint","value":"1"}],"type":"SELECT"},"explain":"Fingerprint Verification","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.fingerprint.verify.mode","value":"0"},{"descriptor":{"ui":{"max":1000,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Fingerprint Comparison Threshold","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.fingerprintThreshold","value":"600"}],"name":"More Comparison Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Prompt Text","limit":0,"readonly":false,"required":true,"unique":true},"key":"custom_hint","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Smart Prompt","value":"0"},{"name":"MP3Prompt","value":"1"}],"type":"RADIO"},"explain":"Prompt Text","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.custom.hint.code","value":"1"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"MP3Prompt","limit":0,"readonly":false,"required":true,"unique":true},"key":"mp3_prompt","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Default","value":"0"},{"name":"Custom","value":"1"}],"type":"RADIO"},"explain":"中文","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.custom.hint.state.zh","value":"0"},{"descriptor":{"ui":{"items":[{"name":"Default","value":"0"},{"name":"Custom","value":"1"}],"type":"RADIO"},"explain":"English","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.custom.hint.state.en","value":"0"}],"name":"MP3Prompt"}}],"name":"Prompt Text"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Content Broadcasting","limit":0,"readonly":false,"required":true,"unique":true},"key":"standby_setting","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"Facial Mode","value":"1"},{"name":"Media Mode”,"value":"0"}],"type":"SELECT"},"explain":"Display Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.oids.display_mode","value":"1"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Media Mode Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"oids_mode","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Recognition Prompt Details","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.oids.hint_msg_switch","value":"true"},{"descriptor":{"ui":{"max":100,"min":0,"step":1,"type":"SLIDEBAR"},"explain":"Recognition Window Transparency","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.oids.recognition_window_trans","value":"100"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Standby Details","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.oids.standby_msg_switch","value":"true"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Screen Time","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.oids.standby_time_switch","value":"true"}],"name":"Media Mode Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Facial Mode Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"face_mode","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Standby Mode Details","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.recognition.standby_msg_switch","value":"true"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Screen Time","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.settings.recognition.standby_time_switch","value":"true"}],"name":"Facial Mode Settings"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Facial Mode Display Details ","limit":0,"readonly":false,"required":true,"unique":true},"key":"standby_display_info","value":{"configList":[{"descriptor":{"ui":{"type":"TEXT"},"explain":"Standby First Line Details","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.standby.message","value":"Welcome"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Standby Second Line Details","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.standby.next.message","value":""}],"name":"FFacial Mode Display Details"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Standby Wallpaper","limit":0,"readonly":false,"required":true,"unique":true},"key":"standby_wallpaper","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Media Cycle","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.carousel.switch","value":"true"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Cycle Duration(s)","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.carousel.time","value":"20"}],"name":"Standby Wallpaper"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Standby Video","limit":0,"readonly":false,"required":true,"unique":true},"key":"standby_video","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Cycle Loop","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.setting.carousel.switch.video","value":"true"}],"name":"Standby Video"}}],"name":"Content Broadcasting"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Date and Time","limit":0,"readonly":false,"required":true,"unique":true},"key":"data_time_setting","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"01-20","value":"0"},{"name":"Jan 20","value":"1"},{"name":"20-01","value":"2"}],"type":"SELECT"},"explain":"Date Format","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.date.format.type","value":"0"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Time Server Synchronisation","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.time.net.sync","value":"true"}],"name":"Date Time"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Minimum Import Image Resolution","limit":0,"readonly":false,"required":true,"unique":true},"key":"import_pic","value":{"configList":[{"descriptor":{"ui":{"items":[{"name":"32x32","value":"0"},{"name":"128x128","value":"1"},{"name":"320x320","value":"2"}],"type":"SELECT"},"explain":"Minimum Import Image Resolution","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.core.fr.face.import_preprocess_min_size"}],"name":"Minimum Import Image Resolution"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Access Record","limit":0,"readonly":false,"required":true,"unique":true},"key":"recognition_record","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Test Mode","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.test.record.toggle","value":"false"},{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Infrared Image","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.core.fr.face.record.save_nir","value":"true"},{"descriptor":{"ui":{"items":[{"name":"Standard","value":"0"},{"name":"Economic","value":"1"}],"type":"SELECT"},"explain":"Access Record Resolution Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.core.fr.face.record.pic_type","value":"0"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Access record transmission","limit":0,"readonly":false,"required":true,"unique":true},"key":"record_transmission","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Access record transmission","limit":0,"readonly":false,"required":true,"unique":true},"key":"persist.websocket.status.toggle","value":"false"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Protocol","limit":0,"readonly":true,"required":true,"unique":true},"key":"persist.websocket.protocol.header","value":"ws"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"IP Address","limit":0,"readonly":false,"required":true,"unique":true},"key":"persist.websocket.url.ip"},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Port No.","limit":0,"readonly":false,"required":true,"unique":true},"key":"persist.websocket.url.port"}],"name":"Access record transmission"}}],"name":"Access Record"}},{"descriptor":{"ui":{"type":"TEXT"},"explain":"Device Web Server Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"webserver_settings","value":{"configList":[{"descriptor":{"ui":{"type":"TOGGLE"},"explain":"Device Web Server Settings","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.webserver.enable","value":"true"},{"descriptor":{"ui":{"items":[{"name":"http","value":"0"},{"name":"https","value":"1"}],"type":"SELECT"},"explain":"Transfer Protocol","limit":0,"readonly":false,"required":true,"unique":true},"key":"bbox.webserver.enablehttps","value":"0"}],"name":"Device Web Server Settings"}}],"name":"Settings"}

    Document library