Search
This method helps you search face from enrolled images.
🎈Endpoint
Method | Endpoint |
---|---|
POST | https://api.verihubs.com/v1/face/search |
🎈Request
Headers
Key | Type | Notes | Description |
---|---|---|---|
App-ID | String | Required | Application ID that generated from Application Menu in Verihubs Client Dashboard. To hit in Testing and Live mode you need a Production Application ID. |
API-Key | String | Required | API-Key that generated from Application Menu in Verihubs Client Dashboard that related to specific Application ID. |
You can generate your Application ID and API-Key in the Application page in Verihubs Client Dashboard..
Body Parameters
Parameter | Type | Notes | Default | Description |
---|---|---|---|---|
image | String | Required | - | A base64 or URL image file. Image Type JPEG, JPG, PNG. Max File size: 5MB. Recommended image ratio 4:3. If the photo is not a face image, it will return "face not detected". |
limit | number | optional | 1 | Number indicating search limit (1 to 10). If the search results match greater than limit images, then the results returned are only the top n with the highest similarity value. If the search result match less than limit images, then all existing results will be returned. Determining whether two images match or not will depend on the given threshold. |
return_image | boolean | optional | false | A flag to return base64 image in matches. If return_image set to false, matches subject_id and the similarity status will be returned. If return_image set to true, matches subject_id, the similarity status, as well as the base64 image will be returned. |
threshold | number | optional | 82 | A number indicating threshold for confidence (0 to 100). The threshold is used to determine whether two images match or not. |
is_quality | boolean | optional | true | Determines whether Image Quality (blur and dark) will be computed and return as result |
is_attribute | boolean | optional | true | Determines whether Image Attribute (sunglasses, mask, veil, hat, and face blocker) will be detected and return as result |
is_liveness | boolean | optional | true | Determines whether Passive Liveness will be computed and return as result |
validate_quality | boolean | optional | false | Determines whether Quality validation will be executed. The validation consists of checking blur and dark. "validate_quality" can be TRUE only when "is_quality" is TRUE. |
validate_attribute | boolean | optional | false | Determines whether Attribute validation will be executed. The validation consists of checking whether sunglasses, mask, or face blocker is detected in the input image. "validate_attribute" can be TRUE only when "is_attribute" is TRUE. |
validate_liveness | boolean | optional | false | Determines whether Liveness validation will be executed. The validation checks whether input image is live / spoof. "validate_liveness" can be TRUE only when "is_liveness" is TRUE. |
validate_nface | boolean | optional | false | Determines whether the number of faces validation will be executed. The validation checks whether the input image consists of more than one face. |
🎈Responses
Response Code
Code | Description |
---|---|
200 | Successful Response |
400 | Bad Request |
401 | Unauthorized |
500 | Internal Server Error |
Details for 200 and 201
Key | Type | Description |
---|---|---|
message | string | Message that describe the overall response. |
status_code | string | Status that indicate the billing calculation. See status code list in this link. |
image_quality | object | Describes image quality detail, consist of blur and dark |
blur | boolean | Describes whether input image is considered as blur (If it exceeds the threshold, it will detected as blur) |
dark | boolean | Describes whether input image is considered as dark (If it exceeds the threshold, it will detected as dark) |
attributes | object | Describes image attributes detail |
sunglasses_on | boolean | Describes whether sunglasses is detected on input image |
mask_on | boolean | Describes whether mask is detected on input image |
veil_on | boolean | Describes whether veil is detected on input image |
hat_on | boolean | Describes whether hat is detected on input image |
face_blocker | boolean | Describes whether any object is detected blocking the face on input image |
liveness | object | Describes liveness detail |
status | boolean | Describes whether the input image is considered as real or spoof |
probability | string | Describes the liveness score (0 or 100) |
rotation | integer | Shows rotation degrees need to be done to detect face in image |
bounding_box | object | Shows result of bounding box |
TopLeftX | string | |
TopLeftY | string | |
BottomRightX | string | |
BottomRightY | string | |
Width | string | |
Height | string | |
face_landmark | object | Shows result of face landmark |
LeftEyeX | string | |
LeftEyeY | string | |
RightEyeX | string | |
RightEyeY | string | |
NoseX | string | |
NoseY | string | |
MouthLeftX | string | |
MouthLeftY | string | |
MouthRightX | string | |
MouthRightY | string | |
nface | integer | Shows how many faces are detected in the input image. |
timestamp | number | Shows time when the process is successfully done |
matches | array of objects | Show similar face matches as limit |
subject_id | string | Shows respected subject_id of similar matches |
similarity | number | Shows result of confidence |
image | string | Shows respected image of similar matches in base64 format |
Error Code
Response Code | Error Message | Description |
---|---|---|
400 | INVALID_PAYLOAD | no value in payload or empty string more than 1 |
400 | INVALID_PAYLOAD_IMAGE_MISSING | invalid payload image not a standard b64/url or image empty string |
400 | INVALID_PAYLOAD_IMAGE_SIZE | invalid payload image size too large |
400 | MISSING_PAYLOAD_IMAGE | missing payload image |
400 | INVALID_PAYLOAD_IMAGE_TIMEOUT | timeout getting image from url in 15 seconds |
400 | INVALID_PAYLOAD_THRESHOLD | threshold cannot lower than 0 or more than 100 |
400 | INVALID_PAYLOAD_LIMIT | limit cannot lower than 1 or more than 10 |
400 | FACE_NOT_DETECTED | face not detected from image |
400 | INVALID_PAYLOAD_QUALITY_VALIDATION_DEPENDENCY | is_quality must be true if validate_quality true |
400 | INVALID_PAYLOAD_ATTRIBUTE_VALIDATION_DEPENDENCY | is_attribute must be true if validate_attribute true |
400 | INVALID_PAYLOAD_LIVENESS_VALIDATION_DEPENDENCY | is_liveness must be true if validate_liveness true |
200 | FAIL_ON_1 | fail on liveness |
200 | FAIL_ON_2 | fail on attribute |
200 | FAIL_ON_3 | fail on liveness and attribute |
200 | FAIL_ON_4 | fail on quality |
200 | FAIL_ON_5 | fail on liveness and quality |
200 | FAIL_ON_6 | fail on attribute and quality |
200 | FAIL_ON_7 | fail on liveness, attribute, and quality |
200 | FAIL_ON_8 | fail on number of face (nface) |
200 | FAIL_ON_9 | fail on number of face (nface) and liveness |
200 | FAIL_ON_10 | fail on number of face (nface) and attribute |
200 | FAIL_ON_11 | fail on number of face (nface), attribute, and liveness |
200 | FAIL_ON_12 | fail on number of face (nface) and quality |
200 | FAIL_ON_13 | fail on number of face (nface), quality, and liveness |
200 | FAIL_ON_14 | fail on number of face (nface), quality, and attribute |
200 | FAIL_ON_15 | fail on number of face (nface), quality, attribute, and liveness |
403 | INSUFFICIENT_QUOTA_SEARCH | usage reach it quota limit for search (only appears on testing mode) |
403 | INSUFFICIENT_QUOTA_LIVENESS | usage reach it quota limit for liveness (only appears on testing mode) |
500 | INTERNAL_SERVER_ERROR | internal server error |
Sample Responses
Success Response (200)
Response Code | Response | Descriptions |
---|---|---|
200 |
| Request data parameter is valid. |
400 |
| Invalid Payload. Transaction that is considered failed due to validation errors, an error_field will appear explaining the error. |
400 |
| Request image is invalid (not a face image). |
401 |
| Authorization Failed; Transaction that unauthorized due to Application ID or API-Key issue. To hit in Testing and Live mode you need a Production Application ID and API-Key. |
403 |
| The transaction is in Testing mode and not enough remaining quota. Please contact Verihubs Customer Support. |
500 |
| Internal server error. |
Updated 11 days ago