{ "uuid": "15f0ef65-3b25-40ce-8258-57637179b220", "lastMigration": 29, "name": "Face Client", "endpointPrefix": "", "latency": 0, "port": 3000, "hostname": "", "routes": [ { "uuid": "65eff70c-e548-4f9c-b13b-ad6633417a25", "documentation": "Detect human faces in an image, return face rectangles, and optionally with faceIds, landmarks, and attributes.
\n* No image will be stored. Only the extracted face feature will be stored on server. The faceId is an identifier of the face feature and will be used in [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239), [Face - Verify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523a), and [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237). The stored face feature(s) will expire and be deleted 24 hours after the original detection call.\n* Optional parameters include faceId, landmarks, and attributes. Attributes include age, gender, headPose, smile, facialHair, glasses, emotion, hair, makeup, occlusion, accessories, blur, exposure and noise. Some of the results returned for specific attributes may not be highly accurate.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* Up to 100 faces can be returned for an image. Faces are ranked by face rectangle size from large to small.\n* For optimal results when querying [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239), [Face - Verify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523a), and [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237) ('returnFaceId' is true), please use faces that are: frontal, clear, and with a minimum size of 200x200 pixels (100 pixels between eyes).\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'detection_01': | The default detection model for [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236). Recommend for near frontal face detection. For scenarios with exceptionally large angle (head-pose) faces, occluded faces or wrong image orientation, the faces in such cases may not be detected. |\n | 'detection_02': | Detection model released in 2019 May with improved accuracy especially on small, side and blurry faces. |\n\n* Different 'recognitionModel' values are provided. If follow-up operations like Verify, Identify, Find Similar are needed, please specify the recognition model with 'recognitionModel' parameter. The default value for 'recognitionModel' is 'recognition_01', if latest model needed, please explicitly specify the model you need in this parameter. Once specified, the detected faceIds will be associated with the specified recognition model. More details, please refer to [How to specify a recognition model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-recognition-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'recognition_01': | The default recognition model for [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236). All those faceIds created before 2019 March are bonded with this recognition model. |\n | 'recognition_02': | Recognition model released in 2019 March. 'recognition_02' is recommended since its overall accuracy is improved compared with 'recognition_01'. |", "method": "post", "endpoint": "detect", "responses": [ { "uuid": "a474afa3-98ed-4fd4-b625-676a88d78050", "body": "[\n {\n \"faceAttributes\": {\n \"accessories\": [\n {\n \"confidence\": {{faker 'number.int' max=99999}},\n \"type\": \"{{oneOf (array 'headWear' 'glasses' 'mask')}}\"\n }\n ],\n \"age\": {{faker 'number.int' max=99999}},\n \"blur\": {\n \"blurLevel\": \"{{oneOf (array 'Low' 'Medium' 'High')}}\",\n \"value\": {{faker 'number.int' max=99999}}\n },\n \"emotion\": {\n \"anger\": {{faker 'number.int' max=99999}},\n \"contempt\": {{faker 'number.int' max=99999}},\n \"disgust\": {{faker 'number.int' max=99999}},\n \"fear\": {{faker 'number.int' max=99999}},\n \"happiness\": {{faker 'number.int' max=99999}},\n \"neutral\": {{faker 'number.int' max=99999}},\n \"sadness\": {{faker 'number.int' max=99999}},\n \"surprise\": {{faker 'number.int' max=99999}}\n },\n \"exposure\": {\n \"exposureLevel\": \"{{oneOf (array 'UnderExposure' 'GoodExposure' 'OverExposure')}}\",\n \"value\": {{faker 'number.int' max=99999}}\n },\n \"facialHair\": {\n \"beard\": {{faker 'number.int' max=99999}},\n \"moustache\": {{faker 'number.int' max=99999}},\n \"sideburns\": {{faker 'number.int' max=99999}}\n },\n \"gender\": \"{{oneOf (array 'male' 'female')}}\",\n \"glasses\": \"{{oneOf (array 'noGlasses' 'readingGlasses' 'sunglasses' 'swimmingGoggles')}}\",\n \"hair\": {\n \"bald\": {{faker 'number.int' max=99999}},\n \"hairColor\": [\n {\n \"color\": \"{{oneOf (array 'unknown' 'white' 'gray' 'blond' 'brown' 'red' 'black' 'other')}}\",\n \"confidence\": {{faker 'number.int' max=99999}}\n }\n ],\n \"invisible\": {{faker 'datatype.boolean'}}\n },\n \"headPose\": {\n \"pitch\": {{faker 'number.int' max=99999}},\n \"roll\": {{faker 'number.int' max=99999}},\n \"yaw\": {{faker 'number.int' max=99999}}\n },\n \"makeup\": {\n \"eyeMakeup\": {{faker 'datatype.boolean'}},\n \"lipMakeup\": {{faker 'datatype.boolean'}}\n },\n \"noise\": {\n \"noiseLevel\": \"{{oneOf (array 'Low' 'Medium' 'High')}}\",\n \"value\": {{faker 'number.int' max=99999}}\n },\n \"occlusion\": {\n \"eyeOccluded\": {{faker 'datatype.boolean'}},\n \"foreheadOccluded\": {{faker 'datatype.boolean'}},\n \"mouthOccluded\": {{faker 'datatype.boolean'}}\n },\n \"smile\": {{faker 'number.int' max=99999}}\n },\n \"faceId\": \"{{faker 'string.uuid'}}\",\n \"faceLandmarks\": {\n \"eyeLeftBottom\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeLeftInner\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeLeftOuter\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeLeftTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeRightBottom\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeRightInner\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeRightOuter\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyeRightTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyebrowLeftInner\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyebrowLeftOuter\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyebrowRightInner\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"eyebrowRightOuter\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"mouthLeft\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"mouthRight\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseLeftAlarOutTip\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseLeftAlarTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseRightAlarOutTip\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseRightAlarTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseRootLeft\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseRootRight\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"noseTip\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"pupilLeft\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"pupilRight\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"underLipBottom\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"underLipTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"upperLipBottom\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n },\n \"upperLipTop\": {\n \"x\": {{faker 'number.int' max=99999}},\n \"y\": {{faker 'number.int' max=99999}}\n }\n },\n \"faceRectangle\": {\n \"height\": {{faker 'number.int' max=99999}},\n \"left\": {{faker 'number.int' max=99999}},\n \"top\": {{faker 'number.int' max=99999}},\n \"width\": {{faker 'number.int' max=99999}}\n },\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of face entries ranked by face rectangle size in descending order. An empty response indicates no faces detected.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "3ed0db4c-e477-440f-be9e-42cb97867681", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b8382644-179d-4fff-8002-007a27d0f919", "documentation": "List face lists’ faceListId, name, userData and recognitionModel.
\nTo get face information inside faceList use [FaceList - Get](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524c)\n", "method": "get", "endpoint": "facelists", "responses": [ { "uuid": "ad21d3c1-f8e4-40e3-865a-3226661e1675", "body": "[\n {\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of faceList.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "f87d9b47-4ecf-42d9-9aa3-60b8092c9591", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "32bbafb3-4d8c-44b1-9b15-61e63ce3772a", "documentation": "Delete a specified face list.", "method": "delete", "endpoint": "facelists/:faceListId", "responses": [ { "uuid": "c813e2f5-f0b4-4c47-816e-a44c3362f3f1", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "e69f87ca-2359-4530-93d2-40fccc951769", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "11a0d92c-7ea8-41c2-99c3-26156cb36dc7", "documentation": "Retrieve a face list’s faceListId, name, userData, recognitionModel and faces in the face list.\n", "method": "get", "endpoint": "facelists/:faceListId", "responses": [ { "uuid": "c8aa99bd-0777-4eec-8fde-8fa1698ab363", "body": "{\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the face list's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "d4aa6d4c-02c3-42a5-8ca9-5cbf7b14d397", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "9c150354-f2e7-4f76-8b29-270117bd2d29", "documentation": "Update information of a face list.", "method": "patch", "endpoint": "facelists/:faceListId", "responses": [ { "uuid": "1a63a8b1-706c-4dff-be10-ae2553cbcffa", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "ae93f735-ccbd-43f1-ae9b-044d5cc226ca", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "cd5143f9-0ac1-4f24-941a-f25dc5606459", "documentation": "Create an empty face list with user-specified faceListId, name, an optional userData and recognitionModel. Up to 64 face lists are allowed in one subscription.\n
Face list is a list of faces, up to 1,000 faces, and used by [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237).\n
After creation, user should use [FaceList - Add Face](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395250) to import the faces. No image will be stored. Only the extracted face features are stored on server until [FaceList - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524f) is called.\n
Find Similar is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use [PersonGroup](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395244) / [LargePersonGroup](/docs/services/563879b61984550e40cbbe8d/operations/599acdee6ac60f11b48b5a9d) and [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239).\n
Please consider [LargeFaceList](/docs/services/563879b61984550e40cbbe8d/operations/5a157b68d2de3616c086f2cc) when the face number is large. It can support up to 1,000,000 faces.\n
'recognitionModel' should be specified to associate with this face list. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing face list will use the recognition model that's already associated with the collection. Existing face features in a face list can't be updated to features extracted by another version of recognition model.\n* 'recognition_01': The default recognition model for [FaceList- Create](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524b). All those face lists created before 2019 March are bonded with this recognition model.\n* 'recognition_02': Recognition model released in 2019 March. 'recognition_02' is recommended since its overall accuracy is improved compared with 'recognition_01'.", "method": "put", "endpoint": "facelists/:faceListId", "responses": [ { "uuid": "779a512a-d5ae-4c46-9cca-c6d8476dc667", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "5407b875-9373-4cf7-987b-fa7f1ed429e6", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "8911fd14-a3fd-4c6e-ab21-c5ba1026a046", "documentation": "Add a face to a specified face list, up to 1,000 faces.\n
To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [FaceList - Delete Face](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395251) or [FaceList - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524f) is called.\n
Note persistedFaceId is different from faceId generated by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).\n* Higher face image quality means better detection and recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'detection_01': | The default detection model for [FaceList - Add Face](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395250). Recommend for near frontal face detection. For scenarios with exceptionally large angle (head-pose) faces, occluded faces or wrong image orientation, the faces in such cases may not be detected. |\n | 'detection_02': | Detection model released in 2019 May with improved accuracy especially on small, side and blurry faces. |", "method": "post", "endpoint": "facelists/:faceListId/persistedfaces", "responses": [ { "uuid": "61401898-b70b-4ca9-98a6-ce050d2ca6d7", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns a new persistedFaceId.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "b4f332d9-c5d2-4994-987f-c5633faf71af", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "33949c99-00b0-4eb5-8ed9-9c6fe8141cd8", "documentation": "Delete a face from a face list by specified faceListId and persistedFaceId.\n
Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.", "method": "delete", "endpoint": "facelists/:faceListId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "b4d5607a-8ae5-4cda-8989-9c9f0cfac16a", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "edc4b749-423a-4300-8b39-e1c55ce2824e", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "6c4e7372-dce9-4612-82ba-0dc286956663", "documentation": "Given query face's faceId, to search the similar-looking faces from a faceId array, a face list or a large face list. faceId array contains the faces created by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), which will expire 24 hours after creation. A \"faceListId\" is created by [FaceList - Create](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039524b) containing persistedFaceIds that will not expire. And a \"largeFaceListId\" is created by [LargeFaceList - Create](/docs/services/563879b61984550e40cbbe8d/operations/5a157b68d2de3616c086f2cc) containing persistedFaceIds that will also not expire. Depending on the input the returned similar faces list contains faceIds or persistedFaceIds ranked by similarity.\n
Find similar has two working modes, \"matchPerson\" and \"matchFace\". \"matchPerson\" is the default mode that it tries to find faces of the same person as possible by using internal same-person thresholds. It is useful to find a known person's other photos. Note that an empty list will be returned if no faces pass the internal thresholds. \"matchFace\" mode ignores same-person thresholds and returns ranked similar faces anyway, even the similarity is low. It can be used in the cases like searching celebrity-looking faces.\n
The 'recognitionModel' associated with the query face's faceId should be the same as the 'recognitionModel' used by the target faceId array, face list or large face list.\n", "method": "post", "endpoint": "findsimilars", "responses": [ { "uuid": "ccf33659-fe6f-4898-8590-1354d0982398", "body": "[\n {\n \"confidence\": {{faker 'number.int' max=99999}},\n \"faceId\": \"{{faker 'string.uuid'}}\",\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of the most similar faces represented in faceId if the input parameter is faceIds or persistedFaceId if the input parameter is faceListId.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "90fefe49-8cf0-4090-ae5c-117bd9ec2c37", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "d3ab5964-d6b9-4ce6-b16e-a323382aec1d", "documentation": "Divide candidate faces into groups based on face similarity.
\n* The output is one or more disjointed face groups and a messyGroup. A face group contains faces that have similar looking, often of the same person. Face groups are ranked by group size, i.e. number of faces. Notice that faces belonging to a same person might be split into several groups in the result.\n* MessyGroup is a special face group containing faces that cannot find any similar counterpart face from original faces. The messyGroup will not appear in the result if all faces found their counterparts.\n* Group API needs at least 2 candidate faces and 1000 at most. We suggest to try [Face - Verify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523a) when you only have 2 candidate faces.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same.\n", "method": "post", "endpoint": "group", "responses": [ { "uuid": "29f82ed3-2960-4f0b-abaa-935d040d54e3", "body": "{\n \"groups\": [\n [\n \"{{faker 'string.uuid'}}\"\n ]\n ],\n \"messyGroup\": [\n \"{{faker 'string.uuid'}}\"\n ]\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns one or more groups of similar faces (rank by group size) and a messyGroup.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "759e2fea-e4b3-4f57-8040-303a981b255f", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "d09e442a-bd9d-4035-b29c-e40cc495dba7", "documentation": "1-to-many identification to find the closest matches of the specific query person face from a person group or large person group.\n
For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the person group (given by personGroupId) or large person group (given by largePersonGroupId), and return candidate person(s) for that face ranked by similarity confidence. The person group/large person group should be trained to make it ready for identification. See more in [PersonGroup - Train](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395249) and [LargePersonGroup - Train](/docs/services/563879b61984550e40cbbe8d/operations/599ae2d16ac60f11b48b5aa4).\n
\n \nRemarks:
\n* The algorithm allows more than one face to be identified independently at the same request, but no more than 10 faces.\n* Each person in the person group/large person group could have more than one face, but no more than 248 faces.\n* Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Number of candidates returned is restricted by maxNumOfCandidatesReturned and confidenceThreshold. If no person is identified, the returned candidates will be an empty array.\n* Try [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237) when you need to find similar faces from a face list/large face list instead of a person group/large person group.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target person group or large person group.\n", "method": "post", "endpoint": "identify", "responses": [ { "uuid": "9d3ced38-482d-4960-9e9b-ec0b722ab474", "body": "[\n {\n \"candidates\": [\n {\n \"confidence\": {{faker 'number.int' max=99999}},\n \"personId\": \"{{faker 'string.uuid'}}\"\n }\n ],\n \"faceId\": \"{{faker 'string.uuid'}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns the identified candidate person(s) for each query face.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "16e40084-93d0-4523-a871-66a929114b01", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b1a51ecf-7014-489f-91a0-9e952e047c15", "documentation": "List large face lists’ information of largeFaceListId, name, userData and recognitionModel.
\nTo get face information inside largeFaceList use [LargeFaceList Face - Get](/docs/services/563879b61984550e40cbbe8d/operations/5a158cf2d2de3616c086f2d5)
\n* Large face lists are stored in alphabetical order of largeFaceListId.\n* \"start\" parameter (string, optional) is a user-provided largeFaceListId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n
\nFor example, total 5 large person lists: \"list1\", ..., \"list5\".\n
\"start=&top=\" will return all 5 lists.\n
\"start=&top=2\" will return \"list1\", \"list2\".\n
\"start=list2&top=3\" will return \"list3\", \"list4\", \"list5\".\n", "method": "get", "endpoint": "largefacelists", "responses": [ { "uuid": "81efaa81-e996-4304-a36c-374aa2fd7338", "body": "[\n {\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of largeFaceList.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "49a57f7e-e362-4109-a2a4-5d3f6df4f279", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "53575960-4695-48c2-bab9-c403f7096c3f", "documentation": "Delete a specified large face list.", "method": "delete", "endpoint": "largefacelists/:largeFaceListId", "responses": [ { "uuid": "f24a0c30-0771-47a9-975e-6b5ec4171250", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "88891201-5895-4fde-b19a-a49b0934caac", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "4d3c4fbd-5f9e-4e95-aff3-9ac966c1aad4", "documentation": "Retrieve a large face list’s largeFaceListId, name, userData and recognitionModel.", "method": "get", "endpoint": "largefacelists/:largeFaceListId", "responses": [ { "uuid": "7e8b5af9-b997-40ff-bdf3-dbdeb3170e5e", "body": "{\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the large face list's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "7856e968-aadd-4d7c-91fc-936871423d0a", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "519c28d9-9101-450a-943a-448b7ee45a9d", "documentation": "Update information of a large face list.", "method": "patch", "endpoint": "largefacelists/:largeFaceListId", "responses": [ { "uuid": "9c5f7d84-7dea-424b-bc0c-e69368f0acf2", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "2ba9dc07-bcdd-491a-a165-a0b43788c64a", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "f00520da-4b25-4dfc-a061-4809457b76af", "documentation": "Create an empty large face list with user-specified largeFaceListId, name, an optional userData and recognitionModel.\n
Large face list is a list of faces, up to 1,000,000 faces, and used by [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237).\n
After creation, user should use [LargeFaceList Face - Add](/docs/services/563879b61984550e40cbbe8d/operations/5a158c10d2de3616c086f2d3) to import the faces and [LargeFaceList - Train](/docs/services/563879b61984550e40cbbe8d/operations/5a158422d2de3616c086f2d1) to make it ready for [Face - Find Similar](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395237). No image will be stored. Only the extracted face features are stored on server until [LargeFaceList - Delete](/docs/services/563879b61984550e40cbbe8d/operations/5a1580d5d2de3616c086f2cd) is called.\n
Find Similar is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use [PersonGroup](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395244) / [LargePersonGroup](/docs/services/563879b61984550e40cbbe8d/operations/599acdee6ac60f11b48b5a9d) and [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239).\n
'recognitionModel' should be specified to associate with this large face list. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing large face list will use the recognition model that's already associated with the collection. Existing face features in a large face list can't be updated to features extracted by another version of recognition model.\n* 'recognition_01': The default recognition model for [LargeFaceList- Create](/docs/services/563879b61984550e40cbbe8d/operations/5a157b68d2de3616c086f2cc). All those large face lists created before 2019 March are bonded with this recognition model.\n* 'recognition_02': Recognition model released in 2019 March. 'recognition_02' is recommended since its overall accuracy is improved compared with 'recognition_01'.\n\nLarge face list quota:\n* Free-tier subscription quota: 64 large face lists.\n* S0-tier subscription quota: 1,000,000 large face lists.", "method": "put", "endpoint": "largefacelists/:largeFaceListId", "responses": [ { "uuid": "5fc3e005-6404-4983-b0b3-49f10404ddaa", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "0da7b17f-09ba-4c85-8acf-e3d68e79a366", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "680175cd-a250-4025-a1e3-14a36f806ed8", "documentation": "List all faces in a large face list, and retrieve face information (including userData and persistedFaceIds of registered faces of the face).", "method": "get", "endpoint": "largefacelists/:largeFaceListId/persistedfaces", "responses": [ { "uuid": "bfcc7e7a-e3a0-4db3-b368-e8ac92f4eb9e", "body": "[\n {\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of face information that belong to the large face list.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "c74d07e4-6232-43b5-873c-92f379c58509", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "26de3edb-0c30-49de-87c8-c42cd160e52e", "documentation": "Add a face to a specified large face list, up to 1,000,000 faces.\n
To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargeFaceList Face - Delete](/docs/services/563879b61984550e40cbbe8d/operations/5a158c8ad2de3616c086f2d4) or [LargeFaceList - Delete](/docs/services/563879b61984550e40cbbe8d/operations/5a1580d5d2de3616c086f2cd) is called.\n
Note persistedFaceId is different from faceId generated by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same face list are processed sequentially and to/from different face lists are in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'detection_01': | The default detection model for [LargeFaceList - Add Face](/docs/services/563879b61984550e40cbbe8d/operations/5a158c10d2de3616c086f2d3). Recommend for near frontal face detection. For scenarios with exceptionally large angle (head-pose) faces, occluded faces or wrong image orientation, the faces in such cases may not be detected. |\n | 'detection_02': | Detection model released in 2019 May with improved accuracy especially on small, side and blurry faces. |\n\nQuota:\n* Free-tier subscription quota: 1,000 faces per large face list.\n* S0-tier subscription quota: 1,000,000 faces per large face list.", "method": "post", "endpoint": "largefacelists/:largeFaceListId/persistedfaces", "responses": [ { "uuid": "4fbebe10-2d67-4072-b738-581a88215220", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns a new persistedFaceId.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "e96c41f0-9c0c-47d2-8067-d3eff54bc48e", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "2f0183c4-6453-4566-9a36-67ede095d55a", "documentation": "Delete a face from a large face list by specified largeFaceListId and persistedFaceId.\n
Adding/deleting faces to/from a same large face list are processed sequentially and to/from different large face lists are in parallel.", "method": "delete", "endpoint": "largefacelists/:largeFaceListId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "48a966e4-708f-42f7-830c-20652b6ae627", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "c8b7ff21-39bf-45b5-ab2c-889ce61f1cd6", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "46cf3082-28f0-49ff-8fcd-812e1b0d2df5", "documentation": "Retrieve information about a persisted face (specified by persistedFaceId and its belonging largeFaceListId).", "method": "get", "endpoint": "largefacelists/:largeFaceListId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "133fef54-d59c-4046-91e5-9511ce798fc3", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns target persisted face's information (persistedFaceId and userData).", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "08c1710c-80c4-41df-8e10-8a523c53b5f1", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "2394f302-c49e-4cb6-9058-599cdc0a63ca", "documentation": "Update a persisted face's userData field.", "method": "patch", "endpoint": "largefacelists/:largeFaceListId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "6e509ef3-b012-429c-aa0f-4866a80647d0", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "f81a5fb0-0d5a-403e-9c9c-15a7230253dd", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "5de3779d-6a69-4988-992b-04d74329f97f", "documentation": "Queue a large face list training task, the training task may not be started immediately.", "method": "post", "endpoint": "largefacelists/:largeFaceListId/train", "responses": [ { "uuid": "0fec8574-7371-432a-9115-5186129bf6e2", "body": "", "latency": 0, "statusCode": 202, "label": "The training task was queued successfully.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "d7eedfa1-2686-4298-ab03-ed62cbd98298", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "e5da0812-403c-4744-b813-d639e623a1e4", "documentation": "Retrieve the training status of a large face list (completed or ongoing).", "method": "get", "endpoint": "largefacelists/:largeFaceListId/training", "responses": [ { "uuid": "da902d9a-66c5-41a0-a3c4-bb6a957dd27c", "body": "{\n \"createdDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastActionDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastSuccessfulTrainingDateTime\": \"{{faker 'date.recent' 365}}\",\n \"message\": \"\",\n \"status\": \"{{oneOf (array 'nonstarted' 'running' 'succeeded' 'failed')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the large face list's training status.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "d910d827-33d6-488c-ae58-cef156befcd2", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "6d1622fa-ac05-4db9-ac97-eb568c36face", "documentation": "List all existing large person groups’ largePersonGroupId, name, userData and recognitionModel.
\n* Large person groups are stored in alphabetical order of largePersonGroupId.\n* \"start\" parameter (string, optional) is a user-provided largePersonGroupId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n
\nFor example, total 5 large person groups: \"group1\", ..., \"group5\".\n
\"start=&top=\" will return all 5 groups.\n
\"start=&top=2\" will return \"group1\", \"group2\".\n
\"start=group2&top=3\" will return \"group3\", \"group4\", \"group5\".\n", "method": "get", "endpoint": "largepersongroups", "responses": [ { "uuid": "6728d260-c1c5-4d0a-9042-91f1984357aa", "body": "[\n {\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of large person groups and their information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "4cca6c76-a72e-48f6-9035-869a5d89bba3", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "23083757-1be5-4d02-8c5d-e423181a93d8", "documentation": "Delete an existing large person group. Persisted face features of all people in the large person group will also be deleted.", "method": "delete", "endpoint": "largepersongroups/:largePersonGroupId", "responses": [ { "uuid": "badbf2ae-15e5-4610-8bc8-317d439fe839", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "1cb4fb50-008d-4c42-a63f-b461464aba3e", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "ee40bf1d-1699-4702-aabb-dd18f265b20f", "documentation": "Retrieve the information of a large person group, including its name, userData and recognitionModel. This API returns large person group information only, use [LargePersonGroup Person - List](/docs/services/563879b61984550e40cbbe8d/operations/599adda06ac60f11b48b5aa1) instead to retrieve person information under the large person group.\n", "method": "get", "endpoint": "largepersongroups/:largePersonGroupId", "responses": [ { "uuid": "998711c0-878e-43e3-9e33-963a0ce610bb", "body": "{\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the large person group's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "00b8775a-ee14-4414-bc31-d5b2a1933ef0", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "0fdfd9ec-31e7-41b1-ae21-3592047128b7", "documentation": "Update an existing large person group's display name and userData. The properties which does not appear in request body will not be updated.", "method": "patch", "endpoint": "largepersongroups/:largePersonGroupId", "responses": [ { "uuid": "f1761db3-455d-44ba-b03c-ce00218cdfc5", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "e2fe7ccc-dce9-46d9-888f-c821e5dfe86b", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "328980de-ac9b-4c18-a9f7-963d310d1cd8", "documentation": "Create a new large person group with user-specified largePersonGroupId, name, an optional userData and recognitionModel.\n
A large person group is the container of the uploaded person data, including face recognition feature, and up to 1,000,000\npeople.\n
After creation, use [LargePersonGroup Person - Create](/docs/services/563879b61984550e40cbbe8d/operations/599adcba3a7b9412a4d53f40) to add person into the group, and call [LargePersonGroup - Train](/docs/services/563879b61984550e40cbbe8d/operations/599ae2d16ac60f11b48b5aa4) to get this group ready for [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239).\n
No image will be stored. Only the person's extracted face features and userData will be stored on server until [LargePersonGroup Person - Delete](/docs/services/563879b61984550e40cbbe8d/operations/599ade5c6ac60f11b48b5aa2) or [LargePersonGroup - Delete](/docs/services/563879b61984550e40cbbe8d/operations/599adc216ac60f11b48b5a9f) is called.\n
'recognitionModel' should be specified to associate with this large person group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing large person group will use the recognition model that's already associated with the collection. Existing face features in a large person group can't be updated to features extracted by another version of recognition model.\n* 'recognition_01': The default recognition model for [LargePersonGroup - Create](/docs/services/563879b61984550e40cbbe8d/operations/599acdee6ac60f11b48b5a9d). All those large person groups created before 2019 March are bonded with this recognition model.\n* 'recognition_02': Recognition model released in 2019 March. 'recognition_02' is recommended since its overall accuracy is improved compared with 'recognition_01'.\n\nLarge person group quota:\n* Free-tier subscription quota: 1,000 large person groups.\n* S0-tier subscription quota: 1,000,000 large person groups.", "method": "put", "endpoint": "largepersongroups/:largePersonGroupId", "responses": [ { "uuid": "f68fb987-bfba-4b49-852c-868c485dce45", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "905e98b1-e032-41da-8dd9-b4abcbc5e70d", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "0aa86bbe-5a2d-4208-b938-d0bf8085935e", "documentation": "List all persons in a large person group, and retrieve person information (including personId, name, userData and persistedFaceIds of registered faces of the person).", "method": "get", "endpoint": "largepersongroups/:largePersonGroupId/persons", "responses": [ { "uuid": "440867a4-b823-4d08-8ac5-a5a896a7622f", "body": "[\n {\n \"name\": \"\",\n \"userData\": \"\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of person information that belong to the large person group.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "45904f53-11c7-485c-9f67-f86ad85c6b38", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b04f0035-8ca6-40ec-aa23-704d395cd946", "documentation": "Create a new person in a specified large person group.", "method": "post", "endpoint": "largepersongroups/:largePersonGroupId/persons", "responses": [ { "uuid": "5656d8ac-005e-4bb9-9745-b8169150dcf6", "body": "{\n \"name\": \"\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns a new personId created.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "7900abdc-59b2-4f40-b20c-9f70559a0869", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "c9cd2544-d3a2-45a8-8702-2ef58fae8544", "documentation": "Delete an existing person from a large person group. The persistedFaceId, userData, person name and face feature in the person entry will all be deleted.", "method": "delete", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId", "responses": [ { "uuid": "2fa8f0d5-bda8-4fcd-8428-53207bf385fa", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "c8e0c778-4616-46ec-bb9f-970a8db627ed", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "818327e2-9497-41d5-95ba-349800b1b7da", "documentation": "Retrieve a person's name and userData, and the persisted faceIds representing the registered person face feature.", "method": "get", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId", "responses": [ { "uuid": "ea953a6b-e041-4544-b816-550960ad685c", "body": "{\n \"name\": \"\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the person's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "54f02931-1b77-421b-9bcf-12b9bbe6126f", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "ef06b0e2-f59e-41b4-9522-9bdb19b51025", "documentation": "Update name or userData of a person.", "method": "patch", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId", "responses": [ { "uuid": "098e21ab-e091-4971-bd70-be2c9a02229a", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "4592768c-831b-48c3-ab5e-fcee9ed773c4", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "61292022-d655-4834-8c4b-c92011b74aab", "documentation": "Add a face to a person into a large person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [LargePersonGroup PersonFace - Delete](/docs/services/563879b61984550e40cbbe8d/operations/599ae2966ac60f11b48b5aa3), [LargePersonGroup Person - Delete](/docs/services/563879b61984550e40cbbe8d/operations/599ade5c6ac60f11b48b5aa2) or [LargePersonGroup - Delete](/docs/services/563879b61984550e40cbbe8d/operations/599adc216ac60f11b48b5a9f) is called.\n
Note persistedFaceId is different from faceId generated by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'detection_01': | The default detection model for [LargePersonGroup Person - Add Face](/docs/services/563879b61984550e40cbbe8d/operations/599adf2a3a7b9412a4d53f42). Recommend for near frontal face detection. For scenarios with exceptionally large angle (head-pose) faces, occluded faces or wrong image orientation, the faces in such cases may not be detected. |\n | 'detection_02': | Detection model released in 2019 May with improved accuracy especially on small, side and blurry faces. |", "method": "post", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId/persistedfaces", "responses": [ { "uuid": "495fc2ff-5a93-449d-82bc-f834790f3610", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the new persistedFaceId.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "385cf2e8-8d00-45e3-9058-5b7a14216675", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "32b78de7-8d84-4f4b-b34d-b0b83e64eea0", "documentation": "Delete a face from a person in a large person group by specified largePersonGroupId, personId and persistedFaceId.\n
Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.", "method": "delete", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "7a943b72-092f-4661-9f86-5ca05a920aa4", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "06e05f9b-1c79-4e75-b5d8-93e660e1d7e6", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b9beff95-3022-4767-928e-29a549175dbd", "documentation": "Retrieve information about a persisted face (specified by persistedFaceId, personId and its belonging largePersonGroupId).", "method": "get", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "0fad0fbd-a58a-48a5-a1a1-3f3255e31284", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns target persisted face's information (persistedFaceId and userData).", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "335beb35-38b7-48f9-9dda-f74be33fb5bb", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "5acec6df-09a9-4d62-bba2-0380ed258d61", "documentation": "Update a person persisted face's userData field.", "method": "patch", "endpoint": "largepersongroups/:largePersonGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "d2fde28d-c87e-4f3e-af47-9d807dd86a15", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "e01344e6-9e42-41ed-b36a-298052bf0337", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "f95a05a9-e338-4348-982d-b0baa8e6de13", "documentation": "Queue a large person group training task, the training task may not be started immediately.", "method": "post", "endpoint": "largepersongroups/:largePersonGroupId/train", "responses": [ { "uuid": "f405243e-4c0f-4049-a546-31700790a6d8", "body": "", "latency": 0, "statusCode": 202, "label": "The training task was queued successfully.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "4e7f98f7-a1e2-4d43-8095-d9b08f78e30c", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "0cbc5c66-c312-41b1-b7fc-95f982a3df0b", "documentation": "Retrieve the training status of a large person group (completed or ongoing).", "method": "get", "endpoint": "largepersongroups/:largePersonGroupId/training", "responses": [ { "uuid": "725fa5fd-5db7-4e37-a136-5c84584d4dfc", "body": "{\n \"createdDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastActionDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastSuccessfulTrainingDateTime\": \"{{faker 'date.recent' 365}}\",\n \"message\": \"\",\n \"status\": \"{{oneOf (array 'nonstarted' 'running' 'succeeded' 'failed')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the large person group's training status.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "50ad7e1e-21d8-4f68-a413-744fbad998ba", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "e89cc468-8010-48c1-b5a4-600630158297", "documentation": "Retrieve the status of a take/apply snapshot operation.", "method": "get", "endpoint": "operations/:operationId", "responses": [ { "uuid": "a844aac8-b5be-49f8-a750-52acb3f77117", "body": "{\n \"createdTime\": \"{{faker 'date.recent' 365}}\",\n \"lastActionTime\": \"{{faker 'date.recent' 365}}\",\n \"message\": \"\",\n \"resourceLocation\": \"\",\n \"status\": \"{{oneOf (array 'notstarted' 'running' 'succeeded' 'failed')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the snapshot operation's status.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "c1a6dd54-d89d-4743-b8cf-2a5f117997b9", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "3576b9ab-dac5-4bd8-a6cc-b42d2a6dcd65", "documentation": "List person groups’ personGroupId, name, userData and recognitionModel.
\n* Person groups are stored in alphabetical order of personGroupId.\n* \"start\" parameter (string, optional) is a user-provided personGroupId value that returned entries have larger ids by string comparison. \"start\" set to empty to indicate return from the first item.\n* \"top\" parameter (int, optional) specifies the number of entries to return. A maximal of 1000 entries can be returned in one call. To fetch more, you can specify \"start\" with the last returned entry’s Id of the current call.\n
\nFor example, total 5 person groups: \"group1\", ..., \"group5\".\n
\"start=&top=\" will return all 5 groups.\n
\"start=&top=2\" will return \"group1\", \"group2\".\n
\"start=group2&top=3\" will return \"group3\", \"group4\", \"group5\".\n", "method": "get", "endpoint": "persongroups", "responses": [ { "uuid": "237ff904-4c6e-4cb5-8360-c9a8873ee049", "body": "[\n {\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of person groups and their information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "30600bcf-eb79-494e-8dd4-ee5380d7cdb4", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "fb3de9f4-9dcf-4255-84da-9fedbf163416", "documentation": "Delete an existing person group. Persisted face features of all people in the person group will also be deleted.", "method": "delete", "endpoint": "persongroups/:personGroupId", "responses": [ { "uuid": "900a24ef-6c0d-4b74-9d38-ec14d97d4015", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "1c30fd4b-f424-4d49-988b-a4af7dfb2ca2", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b9d922cc-dd40-4dc2-b281-cac3c5ab15b0", "documentation": "Retrieve person group name, userData and recognitionModel. To get person information under this personGroup, use [PersonGroup Person - List](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395241).", "method": "get", "endpoint": "persongroups/:personGroupId", "responses": [ { "uuid": "7e33b624-0edf-4579-bb6f-51f2fb2c78be", "body": "{\n \"recognitionModel\": \"{{oneOf (array 'recognition_01' 'recognition_02')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the person group's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "ea0bc4d9-49c7-4c34-acab-092884fdc1cb", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "e296e36a-8bef-4d70-bec0-2e5a2767b4cd", "documentation": "Update an existing person group's display name and userData. The properties which does not appear in request body will not be updated.", "method": "patch", "endpoint": "persongroups/:personGroupId", "responses": [ { "uuid": "80d35747-7da8-4664-9f2b-aeb450ed9282", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "3bcd4533-8738-468a-993d-57c2649b5cc1", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "b4409d18-a11c-4b56-87a1-e04c7946a2f7", "documentation": "Create a new person group with specified personGroupId, name, user-provided userData and recognitionModel.\n
A person group is the container of the uploaded person data, including face recognition features.\n
After creation, use [PersonGroup Person - Create](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523c) to add persons into the group, and then call [PersonGroup - Train](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395249) to get this group ready for [Face - Identify](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395239).\n
No image will be stored. Only the person's extracted face features and userData will be stored on server until [PersonGroup Person - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523d) or [PersonGroup - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395245) is called.\n
'recognitionModel' should be specified to associate with this person group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing person group will use the recognition model that's already associated with the collection. Existing face features in a person group can't be updated to features extracted by another version of recognition model.\n* 'recognition_01': The default recognition model for [PersonGroup - Create](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395244). All those person groups created before 2019 March are bonded with this recognition model.\n* 'recognition_02': Recognition model released in 2019 March. 'recognition_02' is recommended since its overall accuracy is improved compared with 'recognition_01'.\n\nPerson group quota:\n* Free-tier subscription quota: 1,000 person groups. Each holds up to 1,000 persons.\n* S0-tier subscription quota: 1,000,000 person groups. Each holds up to 10,000 persons.\n* to handle larger scale face identification problem, please consider using [LargePersonGroup](/docs/services/563879b61984550e40cbbe8d/operations/599acdee6ac60f11b48b5a9d).", "method": "put", "endpoint": "persongroups/:personGroupId", "responses": [ { "uuid": "cf801fac-acd3-4ee5-a80d-41d56445ae2d", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "490ca48b-ac4c-4422-bcec-222e4d01a3b6", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "d810d895-9b31-45ff-a49c-4bccf3d03a1d", "documentation": "List all persons in a person group, and retrieve person information (including personId, name, userData and persistedFaceIds of registered faces of the person).", "method": "get", "endpoint": "persongroups/:personGroupId/persons", "responses": [ { "uuid": "9a45c986-cfd1-4d4c-bf6a-620ea88373ba", "body": "[\n {\n \"name\": \"\",\n \"userData\": \"\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of person information that belong to the person group.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "02dd255c-b996-4a89-b75e-22354266fa81", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "01ef3b8d-97d5-4d06-914e-91f39af3dd2b", "documentation": "Create a new person in a specified person group.", "method": "post", "endpoint": "persongroups/:personGroupId/persons", "responses": [ { "uuid": "7bb4d76b-0fd9-43d2-8870-c832137e7ee7", "body": "{\n \"name\": \"\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns a new personId created.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "4856448a-453e-430e-bec3-19c1360bec40", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "75afc329-763f-4bc6-adae-406863f3b355", "documentation": "Delete an existing person from a person group. The persistedFaceId, userData, person name and face feature in the person entry will all be deleted.", "method": "delete", "endpoint": "persongroups/:personGroupId/persons/:personId", "responses": [ { "uuid": "e6a992dc-82c4-4f66-a731-33845b498ee4", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "f1477d5c-549d-40cf-8450-fa0993c43118", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "c93d9957-ee03-4d6c-a10b-ea9ff763beca", "documentation": "Retrieve a person's information, including registered persisted faces, name and userData.", "method": "get", "endpoint": "persongroups/:personGroupId/persons/:personId", "responses": [ { "uuid": "502f7f40-f129-4704-99ef-5086cc0d458a", "body": "{\n \"name\": \"\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the person's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "e53330b3-c104-416a-af22-bd7e7944488a", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "fc1d7d61-9bc7-40e5-b56a-3dafa6449f9a", "documentation": "Update name or userData of a person.", "method": "patch", "endpoint": "persongroups/:personGroupId/persons/:personId", "responses": [ { "uuid": "009a114d-19d1-450f-8228-2fc50631a2ac", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "8d630de6-d402-4add-9719-3ae585e9de4e", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "276a19a3-f426-4c2d-ac9a-9f87bff90999", "documentation": "Add a face to a person into a person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [PersonGroup PersonFace - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523e), [PersonGroup Person - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523d) or [PersonGroup - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395245) is called.\n
Note persistedFaceId is different from faceId generated by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.\n* The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size.\n* Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to [How to specify a detection model](https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/specify-detection-model)\n | Model | Recommended use-case(s) |\n | ---------- | -------- |\n | 'detection_01': | The default detection model for [PersonGroup Person - Add Face](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523b). Recommend for near frontal face detection. For scenarios with exceptionally large angle (head-pose) faces, occluded faces or wrong image orientation, the faces in such cases may not be detected. |\n | 'detection_02': | Detection model released in 2019 May with improved accuracy especially on small, side and blurry faces. |", "method": "post", "endpoint": "persongroups/:personGroupId/persons/:personId/persistedfaces", "responses": [ { "uuid": "e1f553f5-79dc-4c81-9f57-6a2b687799fe", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the new persistedFaceId.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "f2c8efbd-820f-45b3-9ee0-44cf80d5eabb", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "2994e28a-fee0-4d93-9d88-b60a9622fa4d", "documentation": "Delete a face from a person in a person group by specified personGroupId, personId and persistedFaceId.\n
Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.", "method": "delete", "endpoint": "persongroups/:personGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "9995514c-885c-4548-b894-f34e7cd80bd9", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "013495e3-78fb-4e13-89e2-edf786698844", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "cce58c0a-6bfa-48dc-b799-78d7013bfe08", "documentation": "Retrieve information about a persisted face (specified by persistedFaceId, personId and its belonging personGroupId).", "method": "get", "endpoint": "persongroups/:personGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "8f4f33b5-a43f-4a10-97aa-e002a00666e6", "body": "{\n \"persistedFaceId\": \"{{faker 'string.uuid'}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns target persisted face's information (persistedFaceId and userData).", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "21cd865c-e3dd-4d64-ae5a-34131345ba79", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "16e1fa03-3f9f-4cd2-8fcd-85f1270f9153", "documentation": "Add a face to a person into a person group for face identification or verification. To deal with an image contains multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature will be stored on server until [PersonGroup PersonFace - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523e), [PersonGroup Person - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f3039523d) or [PersonGroup - Delete](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395245) is called.\n
Note persistedFaceId is different from faceId generated by [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236).\n* Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* Each person entry can hold up to 248 faces.\n* JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB.\n* \"targetFace\" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided \"targetFace\" rectangle is not returned from [Face - Detect](/docs/services/563879b61984550e40cbbe8d/operations/563879b61984550f30395236), there’s no guarantee to detect and add the face successfully.\n* Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures.\n* Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel.", "method": "patch", "endpoint": "persongroups/:personGroupId/persons/:personId/persistedfaces/:persistedFaceId", "responses": [ { "uuid": "2102e6ab-2789-4994-9b7f-94b49d7de277", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "694bbc5e-b40f-4089-862e-25411a87c1fe", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "d42c79e3-5691-4e26-9d26-c69bbbf03c9c", "documentation": "Queue a person group training task, the training task may not be started immediately.", "method": "post", "endpoint": "persongroups/:personGroupId/train", "responses": [ { "uuid": "b60fe3ff-372c-4d18-b061-76643d44de7d", "body": "", "latency": 0, "statusCode": 202, "label": "The training task was queued successfully.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "5fe59b05-39a1-4a25-b97d-abf387b66430", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "a1f86ade-a73c-4040-949e-f98e3f6e18bd", "documentation": "Retrieve the training status of a person group (completed or ongoing).", "method": "get", "endpoint": "persongroups/:personGroupId/training", "responses": [ { "uuid": "42b03d14-6776-4b4c-afab-7d3650007284", "body": "{\n \"createdDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastActionDateTime\": \"{{faker 'date.recent' 365}}\",\n \"lastSuccessfulTrainingDateTime\": \"{{faker 'date.recent' 365}}\",\n \"message\": \"\",\n \"status\": \"{{oneOf (array 'nonstarted' 'running' 'succeeded' 'failed')}}\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the person group's training status.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "b278cca4-3ac5-4b34-8388-367516bff90b", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "8d8da097-8c1e-44cb-967a-1f5e88a0ba2f", "documentation": "List all accessible snapshots with related information, including snapshots that were taken by the user, or snapshots to be applied to the user (subscription id was included in the applyScope in Snapshot - Take).", "method": "get", "endpoint": "snapshots", "responses": [ { "uuid": "1081f09a-a731-4e33-83f7-a8f0d3123912", "body": "[\n {\n \"account\": \"\",\n \"applyScope\": [\n \"{{faker 'string.uuid'}}\"\n ],\n \"createdTime\": \"{{faker 'date.recent' 365}}\",\n \"id\": \"{{faker 'string.uuid'}}\",\n \"lastUpdateTime\": \"{{faker 'date.recent' 365}}\",\n \"type\": \"{{oneOf (array 'FaceList' 'LargeFaceList' 'LargePersonGroup' 'PersonGroup')}}\",\n \"userData\": \"\"\n }\n]", "latency": 0, "statusCode": 200, "label": "A successful call returns an array of snapshots with snapshot information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "ac4b3d5f-2e9f-4d8e-959a-c6f308ee665e", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "05049eec-8edc-49d2-b578-d21a5133ed70", "documentation": "Submit an operation to take a snapshot of face list, large face list, person group or large person group, with user-specified snapshot type, source object id, apply scope and an optional user data.
\nThe snapshot interfaces are for users to backup and restore their face data from one face subscription to another, inside same region or across regions. The workflow contains two phases, user first calls Snapshot - Take to create a copy of the source object and store it as a snapshot, then calls Snapshot - Apply to paste the snapshot to target subscription. The snapshots are stored in a centralized location (per Azure instance), so that they can be applied cross accounts and regions.
\nTaking snapshot is an asynchronous operation. An operation id can be obtained from the \"Operation-Location\" field in response header, to be used in OperationStatus - Get for tracking the progress of creating the snapshot. The snapshot id will be included in the \"resourceLocation\" field in OperationStatus - Get response when the operation status is \"succeeded\".
\nSnapshot taking time depends on the number of person and face entries in the source object. It could be in seconds, or up to several hours for 1,000,000 persons with multiple faces.
\nSnapshots will be automatically expired and cleaned in 48 hours after it is created by Snapshot - Take. User can delete the snapshot using Snapshot - Delete by themselves any time before expiration.
\nTaking snapshot for a certain object will not block any other operations against the object. All read-only operations (Get/List and Identify/FindSimilar/Verify) can be conducted as usual. For all writable operations, including Add/Update/Delete the source object or its persons/faces and Train, they are not blocked but not recommended because writable updates may not be reflected on the snapshot during its taking. After snapshot taking is completed, all readable and writable operations can work as normal. Snapshot will also include the training results of the source object, which means target subscription the snapshot applied to does not need re-train the target object before calling Identify/FindSimilar.
\n* Free-tier subscription quota: 100 take operations per month.\n* S0-tier subscription quota: 100 take operations per day.", "method": "post", "endpoint": "snapshots", "responses": [ { "uuid": "0aa040aa-f450-42aa-b2ed-afdef475eb83", "body": "", "latency": 0, "statusCode": 202, "label": "The snapshot taking task was queued successfully.", "headers": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Operation-Location", "value": "" } ], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "ef80e84a-70be-44ee-9e17-6a21f2999c5a", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "5040bda7-4e7d-4d03-bde1-a3c105ff6717", "documentation": "Delete an existing snapshot according to the snapshotId. All object data and information in the snapshot will also be deleted. Only the source subscription who took the snapshot can delete the snapshot. If the user does not delete a snapshot with this API, the snapshot will still be automatically deleted in 48 hours after creation.", "method": "delete", "endpoint": "snapshots/:snapshotId", "responses": [ { "uuid": "7d7e7e3c-a5d6-4471-a23c-840cef59033c", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "1b896569-cf37-44b0-99e3-8563edd70e6b", "body": "", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "237ba46c-5f11-49b3-b6ed-f650b5f5d813", "documentation": "Retrieve information about a snapshot. Snapshot is only accessible to the source subscription who took it, and target subscriptions included in the applyScope in Snapshot - Take.", "method": "get", "endpoint": "snapshots/:snapshotId", "responses": [ { "uuid": "92d84c2f-29fe-4268-a7f5-262b7251f92b", "body": "{\n \"account\": \"\",\n \"applyScope\": [\n \"{{faker 'string.uuid'}}\"\n ],\n \"createdTime\": \"{{faker 'date.recent' 365}}\",\n \"id\": \"{{faker 'string.uuid'}}\",\n \"lastUpdateTime\": \"{{faker 'date.recent' 365}}\",\n \"type\": \"{{oneOf (array 'FaceList' 'LargeFaceList' 'LargePersonGroup' 'PersonGroup')}}\",\n \"userData\": \"\"\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the snapshot's information.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "9b83677e-9173-41c4-b8fc-30ce8633bc48", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "6d861dd2-481d-4358-b0b7-c2d5879b0333", "documentation": "Update the information of a snapshot. Only the source subscription who took the snapshot can update the snapshot.", "method": "patch", "endpoint": "snapshots/:snapshotId", "responses": [ { "uuid": "5575d101-82a2-4d44-922b-80c0f1030631", "body": "", "latency": 0, "statusCode": 200, "label": "A successful call returns an empty response body.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "df6e8c78-879a-44d5-9d14-cf390341a8ed", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "eb50e20d-fd23-464d-8d0f-57e2483776e0", "documentation": "Submit an operation to apply a snapshot to current subscription. For each snapshot, only subscriptions included in the applyScope of Snapshot - Take can apply it.
\nThe snapshot interfaces are for users to backup and restore their face data from one face subscription to another, inside same region or across regions. The workflow contains two phases, user first calls Snapshot - Take to create a copy of the source object and store it as a snapshot, then calls Snapshot - Apply to paste the snapshot to target subscription. The snapshots are stored in a centralized location (per Azure instance), so that they can be applied cross accounts and regions.
\nApplying snapshot is an asynchronous operation. An operation id can be obtained from the \"Operation-Location\" field in response header, to be used in OperationStatus - Get for tracking the progress of applying the snapshot. The target object id will be included in the \"resourceLocation\" field in OperationStatus - Get response when the operation status is \"succeeded\".
\nSnapshot applying time depends on the number of person and face entries in the snapshot object. It could be in seconds, or up to 1 hour for 1,000,000 persons with multiple faces.
\nSnapshots will be automatically expired and cleaned in 48 hours after it is created by Snapshot - Take. So the target subscription is required to apply the snapshot in 48 hours since its creation.
\nApplying a snapshot will not block any other operations against the target object, however it is not recommended because the correctness cannot be guaranteed during snapshot applying. After snapshot applying is completed, all operations towards the target object can work as normal. Snapshot also includes the training results of the source object, which means target subscription the snapshot applied to does not need re-train the target object before calling Identify/FindSimilar.
\nOne snapshot can be applied multiple times in parallel, while currently only CreateNew apply mode is supported, which means the apply operation will fail if target subscription already contains an object of same type and using the same objectId. Users can specify the \"objectId\" in request body to avoid such conflicts.
\n* Free-tier subscription quota: 100 apply operations per month.\n* S0-tier subscription quota: 100 apply operations per day.", "method": "post", "endpoint": "snapshots/:snapshotId/apply", "responses": [ { "uuid": "0dbd53b1-5367-41ba-8fa8-b229e4997ce0", "body": "", "latency": 0, "statusCode": 202, "label": "The snapshot applying task was queued successfully.", "headers": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Operation-Location", "value": "" } ], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "ad7d32ad-4fb0-4ce6-94c1-680e6b0bb982", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" }, { "uuid": "0f9956a2-30d8-45ad-9931-9b766cf6b3de", "documentation": "Verify whether two faces belong to a same person or whether one face belongs to a person.\n
\nRemarks:
\n* Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger.\n* For the scenarios that are sensitive to accuracy please make your own judgment.\n* The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target face, person group or large person group.\n", "method": "post", "endpoint": "verify", "responses": [ { "uuid": "bcc0bde0-e051-473c-a440-94881430405a", "body": "{\n \"confidence\": {{faker 'number.int' max=99999}},\n \"isIdentical\": {{faker 'datatype.boolean'}}\n}", "latency": 0, "statusCode": 200, "label": "A successful call returns the verification result.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": true, "crudKey": "id" }, { "uuid": "c1a4d488-0df0-45e0-8245-ce402429ecfd", "body": "{\n \"error\": {\n \"code\": \"\",\n \"message\": \"\"\n }\n}", "latency": 0, "statusCode": 200, "label": "Error response.", "headers": [{ "key": "Content-Type", "value": "application/json" }], "bodyType": "INLINE", "filePath": "", "databucketID": "", "sendFileAsBody": false, "rules": [], "rulesOperator": "OR", "disableTemplating": false, "fallbackTo404": false, "default": false, "crudKey": "id" } ], "enabled": true, "responseMode": null, "type": "http" } ], "proxyMode": false, "proxyHost": "", "proxyRemovePrefix": false, "tlsOptions": { "enabled": false, "type": "CERT", "pfxPath": "", "certPath": "", "keyPath": "", "caPath": "", "passphrase": "" }, "cors": true, "headers": [], "proxyReqHeaders": [{ "key": "", "value": "" }], "proxyResHeaders": [{ "key": "", "value": "" }], "data": [], "folders": [], "rootChildren": [ { "type": "route", "uuid": "65eff70c-e548-4f9c-b13b-ad6633417a25" }, { "type": "route", "uuid": "b8382644-179d-4fff-8002-007a27d0f919" }, { "type": "route", "uuid": "32bbafb3-4d8c-44b1-9b15-61e63ce3772a" }, { "type": "route", "uuid": "11a0d92c-7ea8-41c2-99c3-26156cb36dc7" }, { "type": "route", "uuid": "9c150354-f2e7-4f76-8b29-270117bd2d29" }, { "type": "route", "uuid": "cd5143f9-0ac1-4f24-941a-f25dc5606459" }, { "type": "route", "uuid": "8911fd14-a3fd-4c6e-ab21-c5ba1026a046" }, { "type": "route", "uuid": "33949c99-00b0-4eb5-8ed9-9c6fe8141cd8" }, { "type": "route", "uuid": "6c4e7372-dce9-4612-82ba-0dc286956663" }, { "type": "route", "uuid": "d3ab5964-d6b9-4ce6-b16e-a323382aec1d" }, { "type": "route", "uuid": "d09e442a-bd9d-4035-b29c-e40cc495dba7" }, { "type": "route", "uuid": "b1a51ecf-7014-489f-91a0-9e952e047c15" }, { "type": "route", "uuid": "53575960-4695-48c2-bab9-c403f7096c3f" }, { "type": "route", "uuid": "4d3c4fbd-5f9e-4e95-aff3-9ac966c1aad4" }, { "type": "route", "uuid": "519c28d9-9101-450a-943a-448b7ee45a9d" }, { "type": "route", "uuid": "f00520da-4b25-4dfc-a061-4809457b76af" }, { "type": "route", "uuid": "680175cd-a250-4025-a1e3-14a36f806ed8" }, { "type": "route", "uuid": "26de3edb-0c30-49de-87c8-c42cd160e52e" }, { "type": "route", "uuid": "2f0183c4-6453-4566-9a36-67ede095d55a" }, { "type": "route", "uuid": "46cf3082-28f0-49ff-8fcd-812e1b0d2df5" }, { "type": "route", "uuid": "2394f302-c49e-4cb6-9058-599cdc0a63ca" }, { "type": "route", "uuid": "5de3779d-6a69-4988-992b-04d74329f97f" }, { "type": "route", "uuid": "e5da0812-403c-4744-b813-d639e623a1e4" }, { "type": "route", "uuid": "6d1622fa-ac05-4db9-ac97-eb568c36face" }, { "type": "route", "uuid": "23083757-1be5-4d02-8c5d-e423181a93d8" }, { "type": "route", "uuid": "ee40bf1d-1699-4702-aabb-dd18f265b20f" }, { "type": "route", "uuid": "0fdfd9ec-31e7-41b1-ae21-3592047128b7" }, { "type": "route", "uuid": "328980de-ac9b-4c18-a9f7-963d310d1cd8" }, { "type": "route", "uuid": "0aa86bbe-5a2d-4208-b938-d0bf8085935e" }, { "type": "route", "uuid": "b04f0035-8ca6-40ec-aa23-704d395cd946" }, { "type": "route", "uuid": "c9cd2544-d3a2-45a8-8702-2ef58fae8544" }, { "type": "route", "uuid": "818327e2-9497-41d5-95ba-349800b1b7da" }, { "type": "route", "uuid": "ef06b0e2-f59e-41b4-9522-9bdb19b51025" }, { "type": "route", "uuid": "61292022-d655-4834-8c4b-c92011b74aab" }, { "type": "route", "uuid": "32b78de7-8d84-4f4b-b34d-b0b83e64eea0" }, { "type": "route", "uuid": "b9beff95-3022-4767-928e-29a549175dbd" }, { "type": "route", "uuid": "5acec6df-09a9-4d62-bba2-0380ed258d61" }, { "type": "route", "uuid": "f95a05a9-e338-4348-982d-b0baa8e6de13" }, { "type": "route", "uuid": "0cbc5c66-c312-41b1-b7fc-95f982a3df0b" }, { "type": "route", "uuid": "e89cc468-8010-48c1-b5a4-600630158297" }, { "type": "route", "uuid": "3576b9ab-dac5-4bd8-a6cc-b42d2a6dcd65" }, { "type": "route", "uuid": "fb3de9f4-9dcf-4255-84da-9fedbf163416" }, { "type": "route", "uuid": "b9d922cc-dd40-4dc2-b281-cac3c5ab15b0" }, { "type": "route", "uuid": "e296e36a-8bef-4d70-bec0-2e5a2767b4cd" }, { "type": "route", "uuid": "b4409d18-a11c-4b56-87a1-e04c7946a2f7" }, { "type": "route", "uuid": "d810d895-9b31-45ff-a49c-4bccf3d03a1d" }, { "type": "route", "uuid": "01ef3b8d-97d5-4d06-914e-91f39af3dd2b" }, { "type": "route", "uuid": "75afc329-763f-4bc6-adae-406863f3b355" }, { "type": "route", "uuid": "c93d9957-ee03-4d6c-a10b-ea9ff763beca" }, { "type": "route", "uuid": "fc1d7d61-9bc7-40e5-b56a-3dafa6449f9a" }, { "type": "route", "uuid": "276a19a3-f426-4c2d-ac9a-9f87bff90999" }, { "type": "route", "uuid": "2994e28a-fee0-4d93-9d88-b60a9622fa4d" }, { "type": "route", "uuid": "cce58c0a-6bfa-48dc-b799-78d7013bfe08" }, { "type": "route", "uuid": "16e1fa03-3f9f-4cd2-8fcd-85f1270f9153" }, { "type": "route", "uuid": "d42c79e3-5691-4e26-9d26-c69bbbf03c9c" }, { "type": "route", "uuid": "a1f86ade-a73c-4040-949e-f98e3f6e18bd" }, { "type": "route", "uuid": "8d8da097-8c1e-44cb-967a-1f5e88a0ba2f" }, { "type": "route", "uuid": "05049eec-8edc-49d2-b578-d21a5133ed70" }, { "type": "route", "uuid": "5040bda7-4e7d-4d03-bde1-a3c105ff6717" }, { "type": "route", "uuid": "237ba46c-5f11-49b3-b6ed-f650b5f5d813" }, { "type": "route", "uuid": "6d861dd2-481d-4358-b0b7-c2d5879b0333" }, { "type": "route", "uuid": "eb50e20d-fd23-464d-8d0f-57e2483776e0" }, { "type": "route", "uuid": "0f9956a2-30d8-45ad-9931-9b766cf6b3de" } ] }