{"info":{"_postman_id":"2571e3f7-efcd-4878-a29c-0be571955a52","name":"Saffe API","description":"<html><head></head><body><p>This documentation is for use of partners to evaluate and integrate Saffe technology, which is made available via a REST API for four different purposes:</p>\n<ul>\n<li><a href=\"#c1cac927-fd1f-4af3-b697-b95421067d71\">Gallery matching</a></li>\n<li><a href=\"#6329b25d-0d3a-4726-8d06-40b594cd9fd7\">ID matching</a></li>\n<li><a href=\"#398249ed-b762-4cba-8805-c1d93a701dcc\">Liveness detection</a></li>\n<li><a href=\"#c1f59ec8-bb88-4470-b43f-092fdb9ec389\">Face detection</a></li>\n</ul>\n<p>Such requests always respond in JSON format and contain at least two attributes: <code>status</code> and <code>message</code>, where <code>status</code> codes will tentatively be related to HTTP <a href=\"https://www.w3.org/Protocols/HTTP/HTRESP.html\">response codes</a>.</p>\n<blockquote>\n<p>Note: All API requests require the <code>api_user</code> and <code>api_key</code> parameters, which shall be made available to you by your contact at <a href=\"https://www.saffe.ai\">Saffe</a>.</p>\n</blockquote>\n<h2 id=\"general-return-codes-in-json-responses\">General return codes in JSON responses:</h2>\n<p>Even though the meaning of attributes <code>status</code> and <code>message</code> is particular to each endpoint, there are some response cases that can be observed throughout the use of our API. Such general status codes and messages are presented in the table below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>status</th>\n<th>message</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Request OK</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Missing required parameter.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>API user not allowed.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>API user not found.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>API user role not allowed.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Parameter <code>parameter_name</code> must be an integer Unix timestamp.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Problem trying to process request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Invalid credentials.</td>\n</tr>\n</tbody>\n</table>\n</div><p>When the API endpoint takes one or more images as input parameter(s), some general return codes related to image validation also apply. They are as follows: </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>status</th>\n<th>message</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>400</td>\n<td>Image parameter in wrong format.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Image is probably corrupted.</td>\n</tr>\n<tr>\n<td>415</td>\n<td>Invalid image.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>There was an error. Try again or contact Saffe for support.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Error trying to detect a face. Try another image.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Could not detect a face. Try another image.</td>\n</tr>\n</tbody>\n</table>\n</div><p>In addition to these general return codes, there are others that are particular to given requests and contexts. An exhaustive list of return codes are provided within the example responses that can be accessed directly via the drop-down list right next to each example request available in this documentation.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"2124150","collectionId":"2571e3f7-efcd-4878-a29c-0be571955a52","publishedId":"TVzYguFN","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"008E84"},"publishDate":"2023-11-20T14:42:39.000Z"},"item":[{"name":"Gallery matching","item":[{"name":"Users","item":[{"name":"User registration","id":"17e847b2-697b-4022-8b05-7be156016200","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"},{"key":"image","description":"<p>VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.</p>\n","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Users/gchiachia/Downloads/WhatsApp Image 2024-09-06 at 08.58.05.jpeg"],"value":null}]},"url":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}&return_template={{return_template}}","description":"<p>Registers a new user in the gallery with the identifier <code>user_reference</code>.</p>\n<blockquote>\n<p>Note: <code>user_reference</code> is case sensitive, which means, for example, that 'user_01' is different from 'User_01'.</p>\n</blockquote>\n","urlObject":{"protocol":"https","path":["v1","users"],"host":["{{server}}"],"query":[{"description":{"content":"<p>Unique identifier of the user for later use in the matching of a new face with such a gallery image</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if liveness detection is required (true or false) for a successful registration. Default is true.</p>\n","type":"text/plain"},"key":"liveness","value":"{{liveness}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if the image is to be saved (true or false) for later retrieval. Default is true.</p>\n","type":"text/plain"},"key":"save_image","value":"{{save_image}}"},{"description":{"content":"<p>[OPTIONAL] Indicates whether to teturn an encrypted version of the biometric template for later re-use. Default is false.</p>\n","type":"text/plain"},"key":"return_template","value":"{{return_template}}"}],"variable":[]}},"response":[{"id":"08cfb36e-73d0-432f-86b5-6b333d7c8916","name":"Liveness requirements - face is too close","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Saffe/imgs/123_carlos_120_160.jpg"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"46bf6702-a3c8-4cb5-a05e-56bc953d6e38","name":"Liveness requirements - face is too far","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Saffe/imgs/123_carlos_120_160.jpg"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too far.\"\n}"},{"id":"4afe04c4-6733-4f52-859a-f63d61592ca4","name":"Liveness fail","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"245"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 403,\n    \"message\": \"Please try to avoid excessive light in the background.\",\n    \"liveness\": {\n        \"status\": 403,\n        \"message\": \"Please try to avoid excessive light in the background.\",\n        \"score\": 1.1330087184906006,\n        \"threshold\": 1.4152121543884277\n    }\n}"},{"id":"68030cc4-abee-4dec-afeb-ceff34aa6964","name":"Liveness requirements - face descentralized","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Saffe/imgs/123_carlos_120_160.jpg"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is not enough centralized.\"\n}"},{"id":"8efcd32b-97d9-48c9-8c74-4dab83ad18b1","name":"Liveness requirements - image in wrong orientation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\"\n}"},{"id":"93ddf673-3205-48e6-9e9d-df58651c5ea1","name":"No face detected","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"74"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Could not detect a face. Try another image.\"\n}"},{"id":"e031c1f9-f261-4ebe-a990-584509ef0b94","name":"User already exists","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"55"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"User <user_reference> already exists.\"\n}"},{"id":"ec2e60c6-ce41-4106-9bcc-3928a2883a21","name":"Success - Liveness ON","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"271"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"User registered successfully.\",\n    \"image_url\": \"https://<server>/<path_to_saved_image>\",\n    \"liveness\": {\n        \"status\": 200,\n        \"message\": \"Live person detected\",\n        \"score\": \"4.4233\",\n        \"threshold\": \"1.4152\"\n    }\n}"},{"id":"fc09d641-68c1-4cad-b9e0-e3ba1e7b032e","name":"Success - Liveness OFF","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not (true or false). Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image has to be saved or not (true or false). Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"228"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"User registered successfully.\",\n    \"image_url\": \"https://<server>/<path_to_saved_image>\",\n    \"liveness\": {\n        \"message\": \"liveness set to OFF at the request\"\n    }\n}"},{"id":"ef3d5c4d-3638-4027-bf85-fc2a8d6bfd42","name":"Success with template return","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":"/Users/gchiachia/Downloads/WhatsApp Image 2024-09-06 at 08.58.05.jpeg"}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}&return_template={{return_template}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if liveness detection is required (true or false) for a successful registration. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image is to be saved (true or false) for later retrieval. Default is true."},{"key":"return_template","value":"{{return_template}}","description":"[OPTIONAL] Indicates whether to teturn an encrypted version of the biometric template for later re-use. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 13 Nov 2024 11:19:37 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"3264"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"},{"key":"Strict-Transport-Security","value":"max-age=31536000"},{"key":"X-BGENV","value":"green"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"User registered successfully.\",\n    \"liveness\": {\n        \"message\": \"liveness set to OFF at the request\"\n    },\n    \"template\": \"wy4ECQMIDAZQfFAbTUP/Bjd3x2H7ExoSJ...F0MhA1C6JPDRoKTEoU\\nF4YZIovxXuVKOsJv\\n=QDAW\"\n}"}],"_postman_id":"17e847b2-697b-4022-8b05-7be156016200"},{"name":"User update","id":"1fc7a1e0-0c83-4476-a296-b20e6a996f64","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"},{"key":"image","description":"<p>VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.</p>\n","type":"file","value":null}]},"url":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}&return_template={{return_template}}","description":"<p>Updates the gallery by adding a new image to the already existing records of a given user, therefore enriching its information and increasing the chances of that person being correctly recognized.</p>\n<blockquote>\n<p>Note: This method is not meant to replace the records of a specific user. For that, the required steps are to first delete the user (via the <code>DELETE</code> method) and then register him again with the same <code>user_reference</code> (via the <code>POST</code> method).</p>\n</blockquote>\n","urlObject":{"protocol":"https","path":["v1","users"],"host":["{{server}}"],"query":[{"description":{"content":"<p>Unique identifier of the user to be updated.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if liveness detection is required (true or false) for a successful update. Default is true.</p>\n","type":"text/plain"},"key":"liveness","value":"{{liveness}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if the image is to be saved (true or false) for later retrieval. Default is true.</p>\n","type":"text/plain"},"key":"save_image","value":"{{save_image}}"},{"description":{"content":"<p>[OPTIONAL] Indicates whether to teturn an encrypted version of the biometric template for later re-use. Default is false.</p>\n","type":"text/plain"},"key":"return_template","value":"{{return_template}}"}],"variable":[]}},"response":[{"id":"04b3912d-c67c-44a8-ae8b-29d586af60e5","name":"Liveness requirements - face descentralized","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_01.png"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is not enough centralized.\"\n}"},{"id":"630ed3b0-14b9-4296-84ff-e08c5e584588","name":"Liveness requirements - face is too far","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_01.png"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too far.\"\n}"},{"id":"ca5d3ec0-d5ae-4bcf-a797-003b42e8a9e1","name":"Successful update","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"284"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness\": {\n        \"status\": 200,\n        \"message\": \"Live person detected\",\n        \"score\": 2.847717046737671,\n        \"threshold\": 1.068127989768982\n    },\n    \"message\": \"User updated successfully.\",\n    \"image_url\": \"https://<server>/<path_to_saved_image>\",\n    \"status\": 200\n}"},{"id":"df23f743-1f65-4f32-8705-61581a2cf510","name":"Liveness fail","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"161"},{"key":"Server","value":"TornadoServer/4.5.2"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 403,\n    \"message\": \"Please try to avoid excessive light in the background.\",\n    \"liveness\": {\n        \"status\": 403,\n        \"message\": \"Please try to avoid excessive light in the background.\",\n        \"score\": 1.1330087184906006,\n        \"threshold\": 1.4152121543884277\n    }\n}"},{"id":"f75fc6f0-d6ad-46c3-a048-f22ffa1579c6","name":"Liveness requirements - image in wrong orientation","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_01.png"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\"\n}"},{"id":"f87a4aa0-6f54-41ca-99de-35ff6f85b21f","name":"User not found","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"59"},{"key":"Server","value":"TornadoServer/4.5.2"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"User <user_reference> not found.\"\n}"},{"id":"fcb4b555-3273-4229-bd9b-8d7b3b508a83","name":"Liveness requirements - face is too close","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_01.png"]}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"2edc0b2d-b71e-4ec9-876a-b9fd6dd71e8e","name":"Success with template return","originalRequest":{"method":"PUT","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be processed and stored in the gallery for later matching. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v1/users?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}&return_template={{return_template}}","protocol":"https","host":["{{server}}"],"path":["v1","users"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be updated."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if liveness detection is required (true or false) for a successful update. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the image is to be saved (true or false) for later retrieval. Default is true."},{"key":"return_template","value":"{{return_template}}","description":"[OPTIONAL] Indicates whether to teturn an encrypted version of the biometric template for later re-use. Default is false."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"3261"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"User updated successfully.\",\n    \"liveness\": {\n        \"message\": \"liveness set to OFF at the request\"\n    },\n    \"template\": \"wy4ECQMIDAZQfFAbTUP/Bjd3x2H7ExoSJ...F0MhA1C6JPDRoKTEoU\\nF4YZIovxXuVKOsJv\\n=\\n=EJ38\"\n}"}],"_postman_id":"1fc7a1e0-0c83-4476-a296-b20e6a996f64"},{"name":"User deletion","id":"5d0ea667-5534-4f3e-89db-98cb68c2709c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"}]},"url":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}","description":"<p>Permanently delete a registered user.</p>\n","urlObject":{"protocol":"https","path":["{{version}}","users"],"host":["{{server}}"],"query":[{"description":{"content":"<p>Unique identifier of the user to be deleted.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"}],"variable":[]}},"response":[{"id":"32dea066-8465-4ece-baae-04eb84e2807e","name":"Successful deletion","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference=andre","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"andre","description":"Unique identifier of the user to be updated."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"51"},{"key":"Server","value":"TornadoServer/4.5.2"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User deleted.\",\n    \"status\": 200\n}"},{"id":"a7fc96d5-8626-442d-8260-cedcd50434da","name":"User not found","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference=xpto","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"xpto","description":"Unique identifier of the user to be updated."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Server","value":"TornadoServer/4.5.2"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User <user_reference> not found.\",\n    \"status\": 400\n}"},{"id":"e6939d24-e4bb-4c80-b668-713d8bcab330","name":"Empty gallery","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be deleted."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 14:52:47 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"37"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Gallery for given request not found.\"\n}"}],"_postman_id":"5d0ea667-5534-4f3e-89db-98cb68c2709c"},{"name":"Querying users","id":"ed669d02-30f5-4edc-9c83-08d2cf12765c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"}]},"url":"https://{{server}}/{{version}}/users?user_reference={{user_reference}}&created_gte={{created_gte}}&created_lt={{created_lt}}&limit={{limit}}","description":"<p>Querying users is done with a <code>GET</code> request to the <code>users</code> endpoint, as shown by the examples associated to this request.</p>\n<p>Filtering can be done in a number of different ways according to the following (optional) parameters:</p>\n","urlObject":{"protocol":"https","path":["{{version}}","users"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date.</p>\n","type":"text/plain"},"key":"created_gte","value":"{{created_gte}}"},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date.</p>\n","type":"text/plain"},"key":"created_lt","value":"{{created_lt}}"},{"description":{"content":"<p>[OPTIONAL] (integer) Maximum number of users to retrieve in the request.</p>\n","type":"text/plain"},"key":"limit","value":"{{limit}}"}],"variable":[]}},"response":[{"id":"062e5269-44b1-4e51-954f-e6d920c34401","name":"Get registers by user_reference and created_gte","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}&created_gte=1565793420","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited."},{"key":"created_gte","value":"1565793420","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date."},{"key":"created_lt","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 16 Aug 2019 20:16:31 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"128"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"u_ref_10\",\n            \"created\": \"Thu, 15 Aug 2019 11:59:08 GMT\"\n        }\n    ]\n}"},{"id":"38e32f63-9db7-45ac-9424-8e073aa8d7f8","name":"Get exact user by user_reference","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited."},{"key":"created_gte","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date.","disabled":true},{"key":"created_lt","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"230"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"user_01\",\n            \"created\": \"Fri, 18 Oct 2019 13:24:02 GMT\",\n            \"image_url\": \"https://<server>/<path_to_user_image>\"\n        }\n    ]\n}"},{"id":"57a523f1-5652-43e6-b199-6f0db882a66a","name":"Get registers by created_gte and created_lt","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&created_gte=1565793240&created_lt=1565793480","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited.","disabled":true},{"key":"created_gte","value":"1565793240","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date."},{"key":"created_lt","value":"1565793480","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 16 Aug 2019 20:19:31 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"204"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"u_ref_04\",\n            \"created\": \"Mon, 19 Aug 2019 15:07:03 GMT\"\n        }\n    ]\n}"},{"id":"95c2d96e-d66d-4673-920c-9418aceab117","name":"Get registers by created_gte","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&created_gte=1565793420","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited.","disabled":true},{"key":"created_gte","value":"1565793420","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date."},{"key":"created_lt","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 16 Aug 2019 20:17:21 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"356"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"u_ref_05\",\n            \"created\": \"Mon, 19 Aug 2019 15:07:30 GMT\"\n        },\n        {\n            \"user_reference\": \"u_ref_06\",\n            \"created\": \"Mon, 19 Aug 2019 15:10:56 GMT\"\n        },\n        {\n            \"user_reference\": \"u_ref_07\",\n            \"created\": \"Mon, 19 Aug 2019 15:26:37 GMT\"\n        }\n    ]\n}"},{"id":"a49b2da0-b22d-481f-bda4-84fbd51a6b9c","name":"Get registers by created_lt","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&created_lt=1565793420","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited.","disabled":true},{"key":"created_gte","value":"1565793420","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date.","disabled":true},{"key":"created_lt","value":"1565793420","description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 16 Aug 2019 20:17:57 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"204"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"u_ref_01\",\n            \"created\": \"Mon, 19 Aug 2019 15:00:22 GMT\"\n        },\n        {\n            \"user_reference\": \"u_ref_02\",\n            \"created\": \"Mon, 19 Aug 2019 15:05:48 GMT\"\n        },\n        {\n            \"user_reference\": \"u_ref_03\",\n            \"created\": \"Mon, 19 Aug 2019 15:06:29 GMT\"\n        },\n        {\n            \"user_reference\": \"u_ref_04\",\n            \"created\": \"Mon, 19 Aug 2019 15:07:03 GMT\"\n        }\n    ]\n}"},{"id":"b8116b87-a922-4688-9e11-003cf0c3f2dd","name":"User does not exist","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] Unique identifier of the user. Will bring all registers if omited."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 15:54:23 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"54"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": []\n}"},{"id":"bff348ae-ad02-48ec-997f-bbd6815cc075","name":"Get all users","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/users?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users"],"query":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] (string) Unique identifier of the user. Will bring all registers if omited."},{"key":"created_gte","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only after (greater than or equal to) such date.","disabled":true},{"key":"created_lt","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter users created only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) Maximum number of users to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"780"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"users\": [\n        {\n            \"user_reference\": \"user_01\",\n            \"created\": \"Thu, 05 Sep 2019 20:02:11 GMT\",\n            \"image_url\": \"https://<server>/<path_to_user_image>\"\n        },\n        {\n            \"user_reference\": \"user_02\",\n            \"created\": \"Fri, 18 Oct 2019 13:24:02 GMT\",\n            \"image_url\": \"https://<server>/<path_to_user_image>\"\n        },\n        {\n            \"user_reference\": \"user_03\",\n            \"created\": \"Fri, 18 Oct 2019 13:31:51 GMT\",\n            \"image_url\": \"https://<server>/<path_to_user_image>\"\n        },\n        {\n            \"user_reference\": \"user_06\",\n            \"created\": \"Tue, 22 Oct 2019 19:03:26 GMT\",\n            \"image_url\": \"https://<server>/<path_to_user_image>\"\n        }\n    ]\n}"}],"_postman_id":"ed669d02-30f5-4edc-9c83-08d2cf12765c"},{"name":"User history","id":"d4618861-bcab-41c2-9dee-9575441fccd7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":"https://{{server}}/{{version}}/user_logs?user_reference={{user_reference}}&date_gte={{date_gte}}&date_lt={{date_lt}}&limit={{limit}}&type={{type}}","description":"<p>Querying the history of operations over users can be done with a <code>GET</code> request to the <code>user_logs</code> endpoint, as shown by the examples associated to this request.</p>\n<p>Filtering can be done in a number of different ways according to the following (optional) parameters.</p>\n","urlObject":{"protocol":"https","path":["{{version}}","user_logs"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] unique identifier of the matching user informed in the POST request.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.</p>\n","type":"text/plain"},"key":"date_gte","value":"{{date_gte}}"},{"description":{"content":"<p>[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date.</p>\n","type":"text/plain"},"key":"date_lt","value":"{{date_lt}}"},{"description":{"content":"<p>[OPTIONAL] maximum number of transactions to retrieve in the request.</p>\n","type":"text/plain"},"key":"limit","value":"{{limit}}"},{"description":{"content":"<p>[OPTIONAL] Type of operation <code>create</code>, <code>update</code> or <code>delete</code></p>\n","type":"text/plain"},"key":"type","value":"{{type}}"}],"variable":[]}},"response":[{"id":"41187d5f-0d5d-4512-864c-9a358f50e468","name":"Query with results","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/user_logs?user_reference=user_10&date_gte=1573141800&date_lt=1573814700&limit=3&type=delete","protocol":"https","host":["{{server}}"],"path":["{{version}}","user_logs"],"query":[{"key":"user_reference","value":"user_10"},{"key":"date_gte","value":"1573141800"},{"key":"date_lt","value":"1573814700"},{"key":"limit","value":"3"},{"key":"type","value":"delete"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"326"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"user_logs\": [\n        {\n            \"user_reference\": \"user_10\",\n            \"date\": \"Sun, 10 Nov 2019 16:21:41 GMT\",\n            \"type\": \"delete\"\n        },\n        {\n            \"user_reference\": \"user_10\",\n            \"date\": \"Sun, 10 Nov 2019 16:26:59 GMT\",\n            \"type\": \"delete\"\n        },\n        {\n            \"user_reference\": \"user_10\",\n            \"date\": \"Sun, 10 Nov 2019 23:27:17 GMT\",\n            \"type\": \"delete\"\n        }\n    ]\n}"},{"id":"77d9fd37-c9b2-4497-b0a4-0998cc62e269","name":"Any registers found","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/user_logs?user_reference=user_01&date_gte=1573141800&date_lt=1573814700&limit=3&type=create","protocol":"https","host":["{{server}}"],"path":["{{version}}","user_logs"],"query":[{"key":"user_reference","value":"user_01"},{"key":"date_gte","value":"1573141800"},{"key":"date_lt","value":"1573814700"},{"key":"limit","value":"3"},{"key":"type","value":"create"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeeded.\",\n    \"user_logs\": []\n}"}],"_postman_id":"d4618861-bcab-41c2-9dee-9575441fccd7"}],"id":"5d43df0c-4ff0-4402-aea1-df492143618d","description":"<p>As mentioned, both 1:1 and 1:N gallery matching require that users are previously enrolled in the gallery (i.e. database).</p>\n<p>Our API provide methods for the complete maintenance of the user gallery as you can see below.</p>\n","event":[{"listen":"prerequest","script":{"id":"a3bb1df4-f913-41ed-9b9c-ce03265df17c","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"69f723d7-ba7d-4955-be9b-6626b4587512","type":"text/javascript","exec":[""]}}],"_postman_id":"5d43df0c-4ff0-4402-aea1-df492143618d"},{"name":"User groups","item":[{"name":"Create group","id":"76aa870c-c669-40a2-b67a-d134338bbdea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","urlObject":{"protocol":"https","path":["{{version}}","groups"],"host":["{{server}}"],"query":[{"key":"group_name","value":"{{group_name}}"}],"variable":[]}},"response":[{"id":"37926c7c-0e04-42b9-944e-8afd3378da8d","name":"New Group","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","groups"],"query":[{"key":"group_name","value":"{{group_name}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"61"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Group group_name successfully created.\"\n}"},{"id":"4fcddf4f-1115-44eb-aeef-a4270ce026ff","name":"Creating pre-existing Group","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","groups"],"query":[{"key":"group_name","value":"{{group_name}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"54"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Group group_name already exist.\"\n}"}],"_postman_id":"76aa870c-c669-40a2-b67a-d134338bbdea"},{"name":"Query groups","id":"1cea57e3-13de-44d5-83ce-92581e0dc98e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":"https://{{server}}/{{version}}/groups","urlObject":{"protocol":"https","path":["{{version}}","groups"],"host":["{{server}}"],"query":[],"variable":[]}},"response":[{"id":"543a7519-3b2a-4227-831b-9ff824028ff5","name":"Retrieve empty group list","originalRequest":{"method":"GET","header":[],"url":"https://{{server}}/{{version}}/groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"52"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeed\",\n    \"groups\": []\n}"},{"id":"6cfd31f1-0044-4881-9473-4883029a54f6","name":"Retrieve list of groups","originalRequest":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":"https://{{server}}/{{version}}/groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"68"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeed\",\n    \"groups\": [\n        \"g1\",\n        \"g2\",\n        \"g3\"\n    ]\n}"}],"_postman_id":"1cea57e3-13de-44d5-83ce-92581e0dc98e"},{"name":"Delete group","id":"dc962ef4-eaf4-40f5-a911-8ed5825a54eb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","urlObject":{"protocol":"https","path":["{{version}}","groups"],"host":["{{server}}"],"query":[{"key":"group_name","value":"{{group_name}}"}],"variable":[]}},"response":[{"id":"8cd83b76-27a7-4652-8b02-c982b03300fc","name":"Delete unexisting group","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","groups"],"query":[{"key":"group_name","value":"{{group_name}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"55"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Group group_name does not exist.\"\n}"},{"id":"cab0ba8a-c460-4e04-bdc5-adb0b1530c48","name":"Delete group","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/groups?group_name={{group_name}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","groups"],"query":[{"key":"group_name","value":"{{group_name}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Group successfully deleted.\"\n}"}],"_postman_id":"dc962ef4-eaf4-40f5-a911-8ed5825a54eb"}],"id":"4f9323a1-daa9-4450-8c5b-861019f8d3fd","description":"<p>The standard 1:N gallery matching compares the submitted facial image against all users previously enrolled in the gallery. However, there are cases that require, for example, the consideration of only a subset of users. For example, VIP clients, users with certain permissions, etc.</p>\n<p>If you want to do 1:N matching with only a subset of users in the gallery, you can do so by associating users to groups -- that can be seen as labels -- and later informing which groups to consider in your 1:N matching.</p>\n<p>In the following we provide details and examples of how to register, query, and delete user groups.</p>\n","event":[{"listen":"prerequest","script":{"id":"afcf2094-b880-4e47-bde9-27be65cdfd51","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"87fcbcf1-f98d-4410-9d40-0622d287e5a1","type":"text/javascript","exec":[""]}}],"_postman_id":"4f9323a1-daa9-4450-8c5b-861019f8d3fd"},{"name":"User x Groups","item":[{"name":"Add user to a group","id":"12e9eaf1-5814-4b55-8b0c-3440bed37760","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","urlObject":{"protocol":"https","path":["{{version}}","users_groups"],"host":["{{server}}"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}],"variable":[]}},"response":[{"id":"5de5cf83-6a07-48be-b44d-c0949acbe1e2","name":"Add user to unexisting group","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Group group_name does not exist.\"\n}"},{"id":"b7a4e7c6-d06b-417d-a014-b49ed2fec340","name":"Add unexisting user to a group","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"48"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"User user_reference not found.\"\n}"},{"id":"dc8d165e-0596-450e-b559-e398f79cf3b0","name":"Add user to group","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"73"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"User successfully associated to the Group.\"\n}"}],"_postman_id":"12e9eaf1-5814-4b55-8b0c-3440bed37760"},{"name":"Query users in groups","id":"c7857c63-44a4-4a19-be49-a4b36e6c1ed0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":"https://{{server}}/{{version}}/users_groups","urlObject":{"protocol":"https","path":["{{version}}","users_groups"],"host":["{{server}}"],"query":[],"variable":[]}},"response":[{"id":"94a2c856-619e-44e6-b3f9-5f091f4404c4","name":"Retrieve list of groups and users","originalRequest":{"method":"GET","header":[],"url":"https://{{server}}/{{version}}/users_groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"95"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Succeed\",\n    \"groups\": {\n        \"group_name1\": [\n            \"user_reference_1\"\n        ],\n        \"group_name_n\": [\n            \"user_reference_1\",\n            \"user_reference_m\"\n        ]\n    }\n}"}],"_postman_id":"c7857c63-44a4-4a19-be49-a4b36e6c1ed0"},{"name":"Remove user from group","id":"16c470c1-3d1d-4f0c-b8e9-c5657d5c82ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","urlObject":{"protocol":"https","path":["{{version}}","users_groups"],"host":["{{server}}"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}],"variable":[]}},"response":[{"id":"6cde2ede-3686-4abe-9b76-f70133873326","name":"Delete user from unexisting group","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Group group does not exist.\"\n}"},{"id":"76eb0a86-7164-4d75-b769-41bdf9b732e7","name":"Removing unexisting association","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Association does not exist.\"\n}"},{"id":"b9ec7ce0-b5c5-4f64-b75e-d2b25c552d28","name":"Remove user from a group","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"}]},"url":{"raw":"https://{{server}}/{{version}}/users_groups?group_name={{group_name}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","users_groups"],"query":[{"key":"group_name","value":"{{group_name}}"},{"key":"user_reference","value":"{{user_reference}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"64"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Association successfully removed.\"\n}"}],"_postman_id":"16c470c1-3d1d-4f0c-b8e9-c5657d5c82ef"}],"id":"86494a11-a0e5-4236-9023-d56fe7fa0398","description":"<p>Once you have your groups properly set, you can associate users to these groups with the use of the <code>users_groups</code> endpoint and the methods provided below.</p>\n","event":[{"listen":"prerequest","script":{"id":"ae9b715d-f876-418d-8039-1c1f74603ee1","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"8b59261d-7edd-4955-b53f-32458fbd6e23","type":"text/javascript","exec":[""]}}],"_postman_id":"86494a11-a0e5-4236-9023-d56fe7fa0398"},{"name":"Match face picture","id":"be7cad95-707b-4bf9-acb5-7a235e8e7ca9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"},{"key":"image","description":"<p>New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.</p>\n","type":"file","value":null}]},"url":"https://{{server}}/v2/gallery_matches?liveness={{liveness}}&save_image={{save_image}}","description":"<p>Once you have users enrolled in the gallery, you can match new facial image against these users with a <code>POST</code> to the <code>gallery_matches</code> endpoint.</p>\n<p>Matching can be done in two different ways (1:1 or 1:N) as we previoulsy <a href=\"#c1cac927-fd1f-4af3-b697-b95421067d71\">mentioned</a>, with the option of which way to consider being determined by the presence or absence of parameter <code>user_reference</code>, such as presented below.</p>\n","urlObject":{"protocol":"https","path":["v2","gallery_matches"],"host":["{{server}}"],"query":[{"disabled":true,"description":{"content":"<p>Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if liveness detection is required (true or false) for a successful matching. Default is true.</p>\n","type":"text/plain"},"key":"liveness","value":"{{liveness}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if the image is to be saved (true or false) for later retrieval. Default is true.</p>\n","type":"text/plain"},"key":"save_image","value":"{{save_image}}"},{"disabled":true,"description":{"content":"<p>[OPTIONAL] Number of comparisons to return in the topN list ordered by similarity.</p>\n","type":"text/plain"},"key":"top_n","value":"{{top_n}}"}],"variable":[]}},"response":[{"id":"0e8f97e5-0b26-44db-a1aa-3cc0f0cd0b08","name":"1:1 Matching - User not found","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"BAD REQUEST","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 15:13:05 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"46"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"User not found.\"\n}"},{"id":"1ac31a88-6830-4051-99ed-be03eec6030f","name":"Empty gallery","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"BAD REQUEST","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 14:50:52 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"67"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"The gallery is empty.\"\n}"},{"id":"1ba25263-b7c0-4405-9f03-bc40b503ae49","name":"Liveness requirements - face is too far","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image=true","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"true","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"44951408-d0f9-49dd-aab7-00c34bbab8d0","name":"Match image detected as fraudulent.","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be matched with the one previously stored in the gallery ","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user for later use in the matching of a new face with such a gallery image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"342","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Wed, 14 Aug 2019 15:26:46 GMT\",\n        \"image_url\": \"https://<server>/<path_to_saved_image>\",\n        \"liveness\": {\n            \"score\": \"0.8698\",\n            \"threshold\": \"1.0948\"\n        },\n        \"match_key\": \"SZgzIG8g334eE4gI19pgKuh9\",\n        \"message\": \"Match image detected as fraudulent.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"0.2088\",\n        \"status\": 403,\n        \"top5\": [\n            {\n                \"image_url\": null,\n                \"label\": \"top1\",\n                \"score\": \"0.2088\",\n                \"user_name\": \"\",\n                \"user_ref\": \"u_ref_04\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top2\",\n                \"score\": \"0.0761\",\n                \"user_name\": \"\",\n                \"user_ref\": \"\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top3\",\n                \"score\": \"0.0643\",\n                \"user_name\": \"\",\n                \"user_ref\": \"u_ref_02\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top4\",\n                \"score\": \"0.0120\",\n                \"user_name\": \"\",\n                \"user_ref\": \"u_ref_03\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top5\",\n                \"score\": \"-0.0557\",\n                \"user_name\": \"\",\n                \"user_ref\": \"u_ref_01\"\n            }\n        ]\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"89e705d9-35ff-49b1-8378-438220951005","name":"Liveness requirements - face is too close","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v1/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image=true","protocol":"https","host":["{{server}}"],"path":["v1","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"true","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"8a14affc-429f-4096-bff3-71be17a1c0cd","name":"1:N unsuccessful matching at Saffe grade","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be matched with the one previously stored in the gallery ","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?top_n={{top_n}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"top_n","value":"{{top_n}}","description":"[OPTIONAL] Number of comparisons to return in the topN list ordered by similarity."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"1608","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Wed, 14 Aug 2019 15:09:32 GMT\",\n        \"image_url\": \"https://<server>/<path_to_saved_image>\",\n        \"liveness\": {\n            \"score\": \"2.4738\",\n            \"threshold\": \"1.0948\"\n        },\n        \"match_key\": \"nxlJWeIhH0nUUpvmFordjaeG\",\n        \"message\": \"Face image does not match at Saffe grade.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"0.1260\",\n        \"status\": 417,\n        \"top5\": [\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top1\",\n                \"score\": \"0.1260\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user02\"\n            },\n            {\n                \"image_url\": null,\n                \"label\": \"top2\",\n                \"score\": \"0.1045\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user04\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top3\",\n                \"score\": \"0.0888\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user01\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top4\",\n                \"score\": \"-0.0151\",\n                \"user_name\": \"\",\n                \"user_ref\": \"\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top5\",\n                \"score\": \"-0.0306\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user03\"\n            }\n        ]\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"927ccebb-9985-4a05-b451-60e7d0fee43f","name":"Liveness requirements - face descentralized","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image=true","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"true","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is not enough centralized.\"\n}"},{"id":"b6e19530-f613-4eb0-a4f4-b090e1e91986","name":"1:1 Matching at Saffe grade - liveness and save_image OFF","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 14:46:37 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"284"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Wed, 14 Aug 2019 14:46:37 GMT\",\n        \"image_url\": \"Save image set to OFF at the request.\",\n        \"liveness\": \"liveness set to OFF at the request.\",\n        \"match_key\": \"wucMACpFYOV4eeecLH9ObG6z\",\n        \"message\": \"Face image match at Saffe grade.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"1.0000\",\n        \"status\": 200\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"c496d662-337b-4867-ba75-b25ff6eba7b2","name":"1:1 matching at Saffe grade","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be matched with the one previously stored in the gallery ","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"unique identifier of the user for later use in the matching of a new face with such a gallery image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"393","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Wed, 14 Aug 2019 14:43:43 GMT\",\n        \"image_url\": \"https://<server>/<path_to_saved_image>\",\n        \"liveness\": {\n            \"score\": \"2.4470\",\n            \"threshold\": \"1.0948\"\n        },\n        \"match_key\": \"yiJ9cnSc1M6PpkNtRs4KKhFh\",\n        \"message\": \"Face image match at Saffe grade.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"1.0000\",\n        \"status\": 200\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"c938008f-e8ea-47f2-a525-f3fbd29510c4","name":"Liveness requirements - image in wrong orientation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"New VGA-resolution facial image to be matched. Shall be submitted as part of a multipart/form-data.","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}&liveness={{liveness}}&save_image=true","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"Unique identifier of the user to be matched. Required for 1:1 matchings and necessarily absent for 1:N matchings."},{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"true","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\"\n}"},{"id":"e18e791e-1bfc-489c-a0c7-731ed6a9bb56","name":"1:N matching at Saffe grade","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be matched with the one previously stored in the gallery ","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?top_n={{top_n}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"top_n","value":"{{top_n}}","description":"[OPTIONAL] Number of comparisons to return in the topN list ordered by similarity."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"1577","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Mon, 19 Aug 2019 16:56:53 GMT\",\n        \"image_url\": \"https://<server>/<path_to_saved_image>\",\n        \"liveness\": {\n            \"score\": \"3.1925\",\n            \"threshold\": \"1.0948\"\n        },\n        \"match_key\": \"wajtBd8SEieWTPgrfWkz0UPS\",\n        \"message\": \"Face image match at Saffe grade.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"1.0000\",\n        \"status\": 200,\n        \"topN\": [\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top1\",\n                \"score\": \"1.0000\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user03\"\n            },\n            {\n                \"image_url\": null,\n                \"label\": \"top2\",\n                \"score\": \"0.8343\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user07\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top3\",\n                \"score\": \"0.8343\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user06\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top4\",\n                \"score\": \"0.0984\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user02\"\n            },\n            {\n                \"image_url\": \"https://<server>/<path_to_saved_image>\",\n                \"label\": \"top5\",\n                \"score\": \"0.0233\",\n                \"user_name\": \"\",\n                \"user_ref\": \"user01\"\n            }\n        ]\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"e739cbf0-4f87-4f1c-ae95-a6c16020bcfc","name":"1:1 unsuccessful matching at Saffe grade","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be matched with the one previously stored in the gallery ","type":"file","value":null}]},"url":{"raw":"https://{{server}}/v2/gallery_matches?user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["v2","gallery_matches"],"query":[{"key":"user_reference","value":"{{user_reference}}","description":"unique identifier of the user for later use in the matching of a new face with such a gallery image"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"400","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"gallery_match\": {\n        \"date\": \"Mon, 19 Aug 2019 16:53:31 GMT\",\n        \"image_url\": \"https://<server>/<path_to_saved_image>\",\n        \"liveness\": {\n            \"score\": \"3.1925\",\n            \"threshold\": \"1.0948\"\n        },\n        \"match_key\": \"P29YdOW3hz0YxrMQgI1VdX4O\",\n        \"message\": \"Face image does not match at Saffe grade.\",\n        \"saffe_grade\": \"0.4524\",\n        \"score\": \"0.0233\",\n        \"status\": 417\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"}],"_postman_id":"be7cad95-707b-4bf9-acb5-7a235e8e7ca9"},{"name":"Querying matches","id":"4f97516d-9f6a-4656-b38e-b2c48a9fe513","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n","type":"text"}]},"url":"https://{{server}}/{{version}}/gallery_matches?user_reference={{user_reference}}&date_gte={{date_gte}}&date_lt={{date_lt}}&limit={{limit}}&match_key={{match_key}}","description":"<p>Gallery matchings can be retrieved via a <code>GET</code> to the <code>gallery_matches</code> endpoint. Filtering is possible in many ways according to the following (optional) parameters.</p>\n","urlObject":{"protocol":"https","path":["{{version}}","gallery_matches"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] unique identifier of the matching user informed in the POST request.</p>\n","type":"text/plain"},"key":"user_reference","value":"{{user_reference}}"},{"description":{"content":"<p>[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.</p>\n","type":"text/plain"},"key":"date_gte","value":"{{date_gte}}"},{"description":{"content":"<p>[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date.</p>\n","type":"text/plain"},"key":"date_lt","value":"{{date_lt}}"},{"description":{"content":"<p>[OPTIONAL] maximum number of transactions to retrieve in the request.</p>\n","type":"text/plain"},"key":"limit","value":"{{limit}}"},{"description":{"content":"<p>[OPTIONAL] unique identifier of the matching transaction.</p>\n","type":"text/plain"},"key":"match_key","value":"{{match_key}}"}],"variable":[]}},"response":[{"id":"0ad28a81-8087-462f-9b7d-b45cd0977e78","name":"Get registers by time interval","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}&date_gte=1566230400&date_lt=1566234000","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] unique identifier of the matching user informed in the POST request.","disabled":true},{"key":"date_gte","value":"1566230400","description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date."},{"key":"date_lt","value":"1566234000","description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] maximum number of transactions to retrieve in the request.","disabled":true},{"key":"match_key","value":"P29YdOW3hz0YxrMQgI1VdX4O","description":"[OPTIONAL] unique identifier of the matching transaction.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:05:09 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"1207"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"P29YdOW3hz0YxrMQgI1VdX4O\",\n            \"date\": \"Mon, 19 Aug 2019 16:53:32 GMT\",\n            \"status\": 417,\n            \"score\": \"0.0233\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user01\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"EhzoT4RlLNxO1PBIg8raBt4Z\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:14 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"wajtBd8SEieWTPgrfWkz0UPS\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:53 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"IMRwqrjqzgNcKRxcNzghlXGh\",\n            \"date\": \"Mon, 19 Aug 2019 16:59:02 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"},{"id":"4a62e277-fd1f-4e79-89f6-b7164bd1fad8","name":"Get registers by date_gte","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}&date_gte=1566230400","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] unique identifier of the matching user informed in the POST request.","disabled":true},{"key":"date_gte","value":"1566230400","description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date."},{"key":"date_lt","value":null,"description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] maximum number of transactions to retrieve in the request.","disabled":true},{"key":"match_key","value":"P29YdOW3hz0YxrMQgI1VdX4O","description":"[OPTIONAL] unique identifier of the matching transaction.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:04:06 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"1500"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"P29YdOW3hz0YxrMQgI1VdX4O\",\n            \"date\": \"Mon, 19 Aug 2019 16:53:32 GMT\",\n            \"status\": 417,\n            \"score\": \"0.0233\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user01\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"EhzoT4RlLNxO1PBIg8raBt4Z\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:14 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"wajtBd8SEieWTPgrfWkz0UPS\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:53 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"IMRwqrjqzgNcKRxcNzghlXGh\",\n            \"date\": \"Mon, 19 Aug 2019 16:59:02 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"xUhkjbFS5CGkRUxKrPOFlOXR\",\n            \"date\": \"Mon, 19 Aug 2019 17:00:30 GMT\",\n            \"status\": 200,\n            \"score\": \"0.8517\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"},{"id":"5fb4cc2e-ba55-49d9-9cda-72a77379aa43","name":"Get registers by date_lt","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}&date_lt=1566234000","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] unique identifier of the matching user informed in the POST request.","disabled":true},{"key":"date_gte","value":"1566230400","description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.","disabled":true},{"key":"date_lt","value":"1566234000","description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] maximum number of transactions to retrieve in the request.","disabled":true},{"key":"match_key","value":"P29YdOW3hz0YxrMQgI1VdX4O","description":"[OPTIONAL] unique identifier of the matching transaction.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:04:44 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"1207"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"P29YdOW3hz0YxrMQgI1VdX4O\",\n            \"date\": \"Mon, 19 Aug 2019 16:53:32 GMT\",\n            \"status\": 417,\n            \"score\": \"0.0233\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user01\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"EhzoT4RlLNxO1PBIg8raBt4Z\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:14 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"wajtBd8SEieWTPgrfWkz0UPS\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:53 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"IMRwqrjqzgNcKRxcNzghlXGh\",\n            \"date\": \"Mon, 19 Aug 2019 16:59:02 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"},{"id":"63441191-9e8d-42aa-99a9-3197e0f5d249","name":"No results","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] Unique identifier of the user. Will bring all registers if omited.","disabled":true},{"key":"match_key","value":"","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 17:50:37 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"49"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": []\n}"},{"id":"bd03f2b8-0b65-4d40-bada-e41ac2b426ab","name":"Get exact regsiter by user_reference","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}&user_reference={{user_reference}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] unique identifier of the matching user informed in the POST request."},{"key":"date_gte","value":null,"description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.","disabled":true},{"key":"date_lt","value":null,"description":"[OPTIONAL] UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] maximum number of transactions to retrieve in the request.","disabled":true},{"key":"match_key","value":"P29YdOW3hz0YxrMQgI1VdX4O","description":"[OPTIONAL] unique identifier of the matching transaction.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:02:28 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"633"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"EhzoT4RlLNxO1PBIg8raBt4Z\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:14 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"{{user_reference}}\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"xUhkjbFS5CGkRUxKrPOFlOXR\",\n            \"date\": \"Mon, 19 Aug 2019 17:00:30 GMT\",\n            \"status\": 200,\n            \"score\": \"0.8517\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"{{user_reference}}\",\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"},{"id":"cb67e9fb-993e-457a-adab-1919a999b32d","name":"Getting all gallery matches","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"{{match_key}}","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Length","value":"1688","name":"Content-Length","description":""},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":""},{"key":"Server","value":"TornadoServer/4.1","name":"Server","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"P29YdOW3hz0YxrMQgI1VdX4O\",\n            \"date\": \"Mon, 19 Aug 2019 16:53:32 GMT\",\n            \"status\": 417,\n            \"score\": \"0.0233\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user01\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"EhzoT4RlLNxO1PBIg8raBt4Z\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:14 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"wajtBd8SEieWTPgrfWkz0UPS\",\n            \"date\": \"Mon, 19 Aug 2019 16:56:53 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"IMRwqrjqzgNcKRxcNzghlXGh\",\n            \"date\": \"Mon, 19 Aug 2019 16:59:02 GMT\",\n            \"status\": 200,\n            \"score\": \"1.0000\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": null,\n            \"saffe_grade\": \"0.4524\"\n        },\n        {\n            \"match_key\": \"xUhkjbFS5CGkRUxKrPOFlOXR\",\n            \"date\": \"Mon, 19 Aug 2019 17:00:30 GMT\",\n            \"status\": 200,\n            \"score\": \"0.8517\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"user03\",\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"},{"id":"f6a21399-b6dc-4e14-a5c7-74bc5827f607","name":"Get exact match by match_key","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/gallery_matches?api_user={{api_user}}&api_key={{api_key}}&match_key={{match_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","gallery_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"user_reference","value":"{{user_reference}}","description":"[OPTIONAL] Unique identifier of the user. Will bring all registers if omited.","disabled":true},{"key":"match_key","value":"{{match_key}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 17:49:58 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"334"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Succeeded.\",\n    \"gallery_matches\": [\n        {\n            \"match_key\": \"{{match_key}}\",\n            \"date\": \"Mon, 19 Aug 2019 16:53:32 GMT\",\n            \"status\": 417,\n            \"score\": \"0.0233\",\n            \"image_url\": \"https://<server>/<path_to_saved_image>\",\n            \"user_reference\": \"u_ref_01\",\n            \"saffe_grade\": \"0.4524\"\n        }\n    ]\n}"}],"_postman_id":"4f97516d-9f6a-4656-b38e-b2c48a9fe513"}],"id":"c1cac927-fd1f-4af3-b697-b95421067d71","description":"<p>Gallery matching is a pretty universal use case and is the procedure that our clients use, for example, to authorize payments, unblock cards, grant access, etc.</p>\n<p>We support the two well-known gallery matching scenarios:</p>\n<ul>\n<li>1:1 matching: when you match a facial image against a known user previously enrolled in the database. </li>\n<li>1:N matching: when you match a facial image against all known users previously enrolled in the database.</li>\n</ul>\n<p>One way or another, the process will require two steps:</p>\n<ol>\n<li>User(s) registration in the gallery, performed by the <a href=\"#17e847b2-697b-4022-8b05-7be156016200\">POST</a> request of <code>users</code>;</li>\n<li>Matching of a new image against the gallery, performed by the <a href=\"#be7cad95-707b-4bf9-acb5-7a235e8e7ca9\">POST</a> request of <code>gallery_matches</code></li>\n</ol>\n","event":[{"listen":"prerequest","script":{"id":"624ed26f-7752-4841-a36a-300d8f7eec4d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"0e086fa0-9a3e-4d0d-af94-ad92fc9113d8","type":"text/javascript","exec":[""]}}],"_postman_id":"c1cac927-fd1f-4af3-b697-b95421067d71"},{"name":"ID matching","item":[{"name":"Matching an ID","id":"4680e6e2-ebe7-45b0-b558-b88ef15c6ede","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>(string) API user provided by a Saffe representative</p>\n","key":"api_user","type":"text","value":"{{api_user}}"},{"description":"<p>(string) API key provided by a Saffe representative</p>\n","key":"api_key","type":"text","value":"{{api_key}}"},{"description":"<p>VGA-resolution facial image to be matched with the one provided in the ID image</p>\n","key":"match_image","type":"file","src":"/Volumes/MacintoshData/data/fw/saffe-docs/api-img-tests/match-imgs/0000000001/0000005.png"},{"description":"<p>ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching</p>\n","key":"id_image","type":"file","src":"/Volumes/MacintoshData/data/fw/saffe-docs/api-img-tests/match-imgs/0000000001/0000006.png"}]},"url":"https://{{server}}/v1/id_matches?liveness={{liveness}}&save_image={{save_image}}","description":"<p>ID matching can be done with a <code>POST</code> to the <code>id_matches</code> endpoint according to the parameters listed below.</p>\n","urlObject":{"protocol":"https","path":["v1","id_matches"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] Indicates if liveness detection is required (true or false) on <code>match_image</code> for a successful matching. Default is true.</p>\n","type":"text/plain"},"key":"liveness","value":"{{liveness}}"},{"description":{"content":"<p>[OPTIONAL] Indicates if the images are to be saved (true or false) for later retrieval. Default is true.</p>\n","type":"text/plain"},"key":"save_image","value":"{{save_image}}"}],"variable":[]}},"response":[{"id":"0cc88c3a-e134-4040-bc90-4decf5cb194a","name":"Liveness requirements - image in wrong orientation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]}]},"url":{"raw":"https://{{server}}/v1/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\"\n}"},{"id":"15b684a7-7870-4d57-85a4-261ada01e895","name":"Liveness requirements - face is too close","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]}]},"url":{"raw":"https://{{server}}/v1/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"1cafcfd1-d07e-48bd-9963-b074f1e305cf","name":"Liveness requirements - face is too far","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]}]},"url":{"raw":"https://{{server}}/v1/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"},{"id":"5bc09913-7fbf-4447-9d3a-8deb390da3a4","name":"Liveness requirements - face descentralized","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":["/Users/carlosost/Downloads/imgs/u_ref_02.png"]}]},"url":{"raw":"https://{{server}}/v1/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is not enough centralized.\"\n}"},{"id":"a27bff1f-35f4-4ad8-8fd0-1f30627063be","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":[]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"317"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_match\": {\n        \"date\": \"Thu, 19 Nov 2020 14:06:31 GMT\",\n        \"liveness\": {\n            \"message\": \"Live person detected.\",\n            \"score\": \"2.1941\",\n            \"status\": 200,\n            \"threshold\": \"1.4152\"\n        },\n        \"match_key\": \"FvycXTsJ48WcGEJoq7i2XryA\",\n        \"message\": \"ID successfully matched.\",\n        \"saffe_grade\": \"0.5000\",\n        \"score\": \"0.8451\",\n        \"status\": 200\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"cdd11a54-fcfd-4835-add2-f70eed371cf4","name":"Liveness fail","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":[]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"380"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_match\": {\n        \"date\": \"Thu, 19 Nov 2020 14:08:18 GMT\",\n        \"liveness\": {\n            \"message\": \"Please try to avoid excessive light in the background.\",\n            \"score\": \"1.1330\",\n            \"status\": 403,\n            \"threshold\": \"1.4152\"\n        },\n        \"match_key\": \"a40eAGQRemGNI78oirNFfysf\",\n        \"message\": \"Please try to avoid excessive light in the background.\",\n        \"saffe_grade\": \"0.5000\",\n        \"score\": \"0.1238\",\n        \"status\": 403\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"ce8c8521-119f-43fb-ad7b-e690a0fe97fb","name":"No face detected","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":[]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/id_matches","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true.","disabled":true},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"74"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Could not detect a face. Try another image.\"\n}"},{"id":"d8135cdd-268f-4c31-bb18-97ba66b81e2f","name":"Faces does not match","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"match_image","description":"VGA-resolution facial image to be matched with the one provided in the ID image","type":"file","src":[]},{"key":"id_image","description":"ID image containing facial picture in upright position. Image should not to exceed 1200x1600 pixels in size for the sake of a quick matching","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/id_matches?liveness={{liveness}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"liveness","value":"{{liveness}}","description":"[OPTIONAL] Indicates if the liveness algorithm will be used or not. Default is true."},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"334"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_match\": {\n        \"date\": \"Thu, 19 Nov 2020 14:10:05 GMT\",\n        \"liveness\": {\n            \"message\": \"Live person detected.\",\n            \"score\": \"2.1764\",\n            \"status\": 200,\n            \"threshold\": \"1.4152\"\n        },\n        \"match_key\": \"N1XoMZTSYOZcHiRf2WPzEFBk\",\n        \"message\": \"Face image does not match at Saffe grade.\",\n        \"saffe_grade\": \"0.5000\",\n        \"score\": \"0.0191\",\n        \"status\": 417\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"}],"_postman_id":"4680e6e2-ebe7-45b0-b558-b88ef15c6ede"},{"name":"Querying ID Matches","id":"7a18a8f2-447d-4d8d-b1b1-b0ba3949db6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>(string) API user provided by a Saffe representative</p>\n","key":"api_user","type":"text","value":"{{api_user}}"},{"description":"<p>(string) API key provided by a Saffe representative</p>\n","key":"api_key","type":"text","value":"{{api_key}}"}]},"url":"https://{{server}}/{{version}}/id_matches?match_key=&date_gte=&date_lt=&limit=","description":"<p>ID matchings can be retrieved via a <code>GET</code> to the <code>id_matches</code> endpoint. Filtering is possible in many ways according to the following (optional) parameters.</p>\n","urlObject":{"protocol":"https","path":["{{version}}","id_matches"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] (string) unique identifier of the matching transaction.</p>\n","type":"text/plain"},"key":"match_key","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.</p>\n","type":"text/plain"},"key":"date_gte","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.</p>\n","type":"text/plain"},"key":"date_lt","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.</p>\n","type":"text/plain"},"key":"limit","value":""}],"variable":[]}},"response":[{"id":"005208c7-4ab2-4aa9-86fc-afb20de65f2c","name":"Get exact register by match_key","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}&match_key=T1ReYeSxi22KljZVJUShpjNl","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"T1ReYeSxi22KljZVJUShpjNl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 17:58:49 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"163"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:06:36 GMT\",\n            \"match_key\": \"MkPohPZt6GR9iTjm8vBYHJDr\",\n            \"score\": \"0.8517\",\n            \"status\": 200\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"22b010f8-18d5-429c-b7bc-04e8b8aede87","name":"Get register by date_gte","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}&date_gte=1566234000","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"MkPohPZt6GR9iTjm8vBYHJDr","description":"[OPTIONAL] (string) unique identifier of the matching transaction.","disabled":true},{"key":"date_gte","value":"1566234000","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date."},{"key":"date_lt","value":null,"description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:24:36 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"273"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:06:36 GMT\",\n            \"match_key\": \"MkPohPZt6GR9iTjm8vBYHJDr\",\n            \"score\": \"0.8517\",\n            \"status\": 200\n        },\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:07:12 GMT\",\n            \"match_key\": \"XGzVqbRDYnZKmYDpJ4dlPimT\",\n            \"score\": \"0.0140\",\n            \"status\": 417\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"6988742a-7ed4-4144-82a1-97b9f3b94861","name":"Get all registers - No results","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 17:54:26 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"54"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [],\n    \"message\": \"Succedeed.\",\n    \"status\": 200\n}"},{"id":"6c2e610f-6f92-4219-8b90-026e25b42c0e","name":"Get registers by date_lt","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}&date_lt=1566234420","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"MkPohPZt6GR9iTjm8vBYHJDr","description":"[OPTIONAL] (string) unique identifier of the matching transaction.","disabled":true},{"key":"date_gte","value":"1566234000","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.","disabled":true},{"key":"date_lt","value":"1566234420","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:25:21 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"163"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:06:36 GMT\",\n            \"match_key\": \"MkPohPZt6GR9iTjm8vBYHJDr\",\n            \"score\": \"0.8517\",\n            \"status\": 200\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"bca8016b-4518-4618-a231-214367dc5ce6","name":"Get registers by time interval","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}&date_gte=1566234000&date_lt=1566234420","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"MkPohPZt6GR9iTjm8vBYHJDr","description":"[OPTIONAL] (string) unique identifier of the matching transaction.","disabled":true},{"key":"date_gte","value":"1566234000","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date."},{"key":"date_lt","value":"1566234420","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date."},{"key":"limit","value":null,"description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:25:45 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"163"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:06:36 GMT\",\n            \"match_key\": \"MkPohPZt6GR9iTjm8vBYHJDr\",\n            \"score\": \"0.8517\",\n            \"status\": 200\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"ea651617-05ee-43d6-82ab-2d5cbd18bf02","name":"Get all registers","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"T1ReYeSxi22KljZVJUShpjNl","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 17:59:41 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"273"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:06:36 GMT\",\n            \"match_key\": \"MkPohPZt6GR9iTjm8vBYHJDr\",\n            \"score\": \"0.8517\",\n            \"status\": 200\n        },\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:07:12 GMT\",\n            \"match_key\": \"XGzVqbRDYnZKmYDpJ4dlPimT\",\n            \"score\": \"0.0140\",\n            \"status\": 417\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"fecdd874-ba85-4268-8c15-27371ea22163","name":"Get exact register by match_key - No results.","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/id_matches?api_user={{api_user}}&api_key={{api_key}}&match_key=T1ReYeSxi22KljZVJUShpjN","protocol":"https","host":["{{server}}"],"path":["{{version}}","id_matches"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"match_key","value":"T1ReYeSxi22KljZVJUShpjN"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 18:00:39 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"54"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id_matches\": [],\n    \"message\": \"Succedeed.\",\n    \"status\": 200\n}"}],"_postman_id":"7a18a8f2-447d-4d8d-b1b1-b0ba3949db6f"}],"id":"6329b25d-0d3a-4726-8d06-40b594cd9fd7","description":"<p>The ID matching functionality was made available with the purpose of comparing two faces in a single API request. It works by submitting both an ID image containing a face as well as a facial image captured with the purpose of authenticating that person.</p>\n<p>By ID image we mean an image of a personal identification document -- such as a passport, a driver's license, and any other accredited document -- containing a facial image.</p>\n<p>Among many possible uses, such enpdoint can be considered, for example, for KYC purposes of a new user enrolling in a digital service.</p>\n","event":[{"listen":"prerequest","script":{"id":"dc750469-3e62-426e-938d-965211a1e9df","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"7cdeb364-57b9-4424-87ed-68b23b9dd278","type":"text/javascript","exec":[""]}}],"_postman_id":"6329b25d-0d3a-4726-8d06-40b594cd9fd7"},{"name":"Liveness detection","item":[{"name":"Detecting liveness","id":"94bfab36-697d-42fd-ad39-e122da895b10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>(string) API user provided by a Saffe representative</p>\n","key":"api_user","type":"text","value":"{{api_user}}"},{"description":"<p>(string) API key provided by a Saffe representative</p>\n","key":"api_key","type":"text","value":"{{api_key}}"},{"description":"<p>VGA-resolution facial image to be submitted to the liveness detector</p>\n","key":"image","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Volumes/MacintoshData/saffe/dev/clients/redeban/id_analysis/selfies/000148510914fDUqkUtNFZS5rVCMBOLsAFAT_01.png"],"src":"/Volumes/MacintoshData/saffe/dev/clients/redeban/id_analysis/selfies/000148510914fDUqkUtNFZS5rVCMBOLsAFAT_01.png"},{"key":"image2","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Volumes/MacintoshData/saffe/dev/clients/redeban/id_analysis/selfies/000148510914fDUqkUtNFZS5rVCMBOLsAFAT_02.png"],"src":"/Volumes/MacintoshData/saffe/dev/clients/redeban/id_analysis/selfies/000148510914fDUqkUtNFZS5rVCMBOLsAFAT_02.png"}]},"url":"https://{{server}}/v2/liveness_detections?save_image={{save_image}}","description":"<p>Liveness detection can be done with a <code>POST</code> to the <code>liveness_detections</code> endpoint according to the parameters listed below.</p>\n","urlObject":{"protocol":"https","path":["v2","liveness_detections"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true.</p>\n","type":"text/plain"},"key":"save_image","value":"{{save_image}}"}],"variable":[]}},"response":[{"id":"036bacf4-70a9-4f97-a4a9-5f75718afbfa","name":"No face detected","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?api_user={{api_user}}&api_key={{api_key}}&save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 14 Aug 2019 16:21:47 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"74"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Could not detect a face. Try another image.\"\n}"},{"id":"144f7e26-d0be-4c92-94e4-2b2689e11109","name":"Liveness requirements - face descentralized","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":["/Users/carlosost/Downloads/PHOTO-2019-08-11-09-08-34 2.jpg"]}]},"url":{"raw":"https://{{server}}/v1/liveness_detections?save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","liveness_detections"],"query":[{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is not enough centralized.\"\n}"},{"id":"15db3fa2-dded-49c7-b882-53830d10fb35","name":"Liveness requirements - image in wrong orientation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":["/Users/carlosost/Downloads/PHOTO-2019-08-11-09-08-34 2.jpg"]}]},"url":{"raw":"https://{{server}}/v1/liveness_detections?save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","liveness_detections"],"query":[{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\"\n}"},{"id":"251e87f5-3816-4015-9abb-526242877bb4","name":"Live person detected","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Origin","value":"*","name":"Access-Control-Allow-Origin","description":"Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource."},{"key":"Content-Length","value":"277","name":"Content-Length","description":"The length of the response body in octets (8-bit bytes)"},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":"The mime type of this content"},{"key":"Server","value":"TornadoServer/4.5.2","name":"Server","description":"A name for the server"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness\": {\n        \"date\": \"Mon, 19 Aug 2019 17:29:07 GMT\",\n        \"detection_key\": \"76NXngOneQuSQWizrw6S1cQm\",\n        \"message\": \"Live person detected.\",\n        \"score\": \"2.4470\",\n        \"status\": 200,\n        \"threshold\": \"1.0948\"\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"a0aa6a59-38df-4c33-b30f-7901568e0631","name":"Liveness fail","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":[]}]},"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"251"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness\": {\n        \"date\": \"Thu, 19 Nov 2020 14:13:58 GMT\",\n        \"detection_key\": \"sry8rKwSlSaM7P6sZ5oZ8Gft\",\n        \"message\": \"Please try to avoid excessive light in the background.\",\n        \"score\": \"1.1330\",\n        \"status\": 403,\n        \"threshold\": \"1.4152\"\n    },\n    \"message\": \"Request OK\",\n    \"status\": 200\n}"},{"id":"e528dfab-e909-4a72-9a89-c41b4b16a4d7","name":"Liveness requirements - face is too far","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":["/Users/carlosost/Downloads/PHOTO-2019-08-11-09-08-34 2.jpg"]}]},"url":{"raw":"https://{{server}}/v1/liveness_detections?save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","liveness_detections"],"query":[{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too far.\"\n}"},{"id":"f1132143-c488-4110-a5f1-2b1c951938d9","name":"Liveness requirements - face is too close","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative","type":"text"},{"key":"api_key","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative","type":"text"},{"key":"image","description":"VGA-resolution facial image to be submitted to the liveness detector","type":"file","src":["/Users/carlosost/Downloads/PHOTO-2019-08-11-09-08-34 2.jpg"]}]},"url":{"raw":"https://{{server}}/v1/liveness_detections?save_image={{save_image}}","protocol":"https","host":["{{server}}"],"path":["v1","liveness_detections"],"query":[{"key":"save_image","value":"{{save_image}}","description":"[OPTIONAL] Indicates if the analyzed images will be saved or not in the server. Default is true."}]}},"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The face is too close.\"\n}"}],"_postman_id":"94bfab36-697d-42fd-ad39-e122da895b10"},{"name":"Querying detections","id":"bc5e5a12-de90-466f-93c2-18522906b80f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>(string) API user provided by a Saffe representative</p>\n","key":"api_user","type":"text","value":"{{api_user}}"},{"description":"<p>(string) API key provided by a Saffe representative</p>\n","key":"api_key","type":"text","value":"{{api_key}}"}]},"url":"https://{{server}}/{{version}}/liveness_detections?detection_key=&date_gte=&date_lt=&limit=","description":"<p>Live detections can be retrieved with a <code>GET</code> to <code>liveness_detections</code>. Additionaly, filtering the desired records is possible with the use of the following optional parameters.</p>\n","urlObject":{"protocol":"https","path":["{{version}}","liveness_detections"],"host":["{{server}}"],"query":[{"description":{"content":"<p>[OPTIONAL] (string) unique identifier of the detection transaction.</p>\n","type":"text/plain"},"key":"detection_key","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.</p>\n","type":"text/plain"},"key":"date_gte","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.</p>\n","type":"text/plain"},"key":"date_lt","value":""},{"description":{"content":"<p>[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.</p>\n","type":"text/plain"},"key":"limit","value":""}],"variable":[]}},"response":[{"id":"3e4535da-ebd6-4124-bbfc-a958d4e00472","name":"Get register by detection_key","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?api_user={{api_user}}&api_key={{api_key}}&detection_key=KcnIsL4B0kGJOxOaCCkGETuy","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"detection_key","value":"KcnIsL4B0kGJOxOaCCkGETuy","description":"[OPTIONAL] (string) unique identifier of the detection transaction."},{"key":"date_gte","value":"","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.","disabled":true},{"key":"date_lt","value":"","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":"","description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:31:23 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"176"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness_detections\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:30:39 GMT\",\n            \"detection_key\": \"KcnIsL4B0kGJOxOaCCkGETuy\",\n            \"score\": \"0.8698\",\n            \"status\": 403\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"b0634ea9-09a4-423e-8895-13f4df896de8","name":"Get all registers - No results","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?api_user={{api_user}}&api_key={{api_key}}","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"detection_key","value":"","description":"[OPTIONAL] (string) unique identifier of the detection transaction.","disabled":true},{"key":"date_gte","value":"","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date.","disabled":true},{"key":"date_lt","value":"","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":"","description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:28:04 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"63"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness_detections\": [],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"},{"id":"fbfeb9ba-20f2-4aed-ac01-cea26ea61b21","name":"Get register by date_gte","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://{{server}}/{{version}}/liveness_detections?api_user={{api_user}}&api_key={{api_key}}&date_gte=1566234420","protocol":"https","host":["{{server}}"],"path":["{{version}}","liveness_detections"],"query":[{"key":"api_user","value":"{{api_user}}","description":"API user provided by a Saffe representative"},{"key":"api_key","value":"{{api_key}}","description":"API key provided by a Saffe representative"},{"key":"detection_key","value":"KcnIsL4B0kGJOxOaCCkGETuy","description":"[OPTIONAL] (string) unique identifier of the detection transaction.","disabled":true},{"key":"date_gte","value":"1566234420","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only after (greater than or equal to) such date."},{"key":"date_lt","value":"","description":"[OPTIONAL] (integer) UNIX timestamp to filter transactions occurred only before (less than) such date.","disabled":true},{"key":"limit","value":"","description":"[OPTIONAL] (integer) maximum number of transactions to retrieve in the request.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 19 Aug 2019 17:32:23 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"404"},{"key":"Connection","value":"keep-alive"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.0.3"},{"key":"Strict-Transport-Security","value":"max-age=31536000"}],"cookie":[],"responseTime":null,"body":"{\n    \"liveness_detections\": [\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:29:07 GMT\",\n            \"detection_key\": \"76NXngOneQuSQWizrw6S1cQm\",\n            \"score\": \"2.4470\",\n            \"status\": 200\n        },\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:30:30 GMT\",\n            \"detection_key\": \"dFjp3cAONK83nslaQFJO3W8Q\",\n            \"score\": \"0.8698\",\n            \"status\": 403\n        },\n        {\n            \"date\": \"Mon, 19 Aug 2019 17:30:39 GMT\",\n            \"detection_key\": \"KcnIsL4B0kGJOxOaCCkGETuy\",\n            \"score\": \"0.8698\",\n            \"status\": 403\n        }\n    ],\n    \"message\": \"Succeeded.\",\n    \"status\": 200\n}"}],"_postman_id":"bc5e5a12-de90-466f-93c2-18522906b80f"}],"id":"398249ed-b762-4cba-8805-c1d93a701dcc","description":"<p>We also make our exclusive liveness detection technology available for stand-alone use.</p>\n<p>Such technology consists of taking \"compliant\" selfie image(s) as input and outputs a score related to how prevalent are the observed pictorial cues w.r.t. to a live person in front of the camera.</p>\n<blockquote>\n<p>CAUTION: This process requires that the facial image being submitted for liveness detection be captured via our SDKs or a capturing procedure previously certified by Saffe. Do not expect the technology to work with images captured without any criteria.</p>\n</blockquote>\n","event":[{"listen":"prerequest","script":{"id":"a3522b86-84ad-42ec-a228-b8065da388a8","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"31aeb06b-2f6c-4db0-b8d7-43d341f91c76","type":"text/javascript","exec":[""]}}],"_postman_id":"398249ed-b762-4cba-8805-c1d93a701dcc"},{"name":"Face detection","item":[{"name":"Detecting faces","id":"9b01a460-d63e-45fd-b3a1-37813f5f698d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","type":"text","value":"{{api_user}}","description":"<p>(string) API user provided by a Saffe representative</p>\n"},{"key":"api_key","type":"text","value":"{{api_key}}","description":"<p>(string) API key provided by a Saffe representative</p>\n"},{"key":"image","type":"file","description":"<p>VGA-resolution facial image to be submitted to the facial detector.</p>\n","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Users/gchiachia/Downloads/-001110460_0000025DerX8vwWTXcpoO0twckCOlwW_01.png"],"src":"/Users/gchiachia/Downloads/-001110460_0000025DerX8vwWTXcpoO0twckCOlwW_01.png"},{"key":"quality_measures","value":"{{quality_measures}}","description":"<p>[OPTIONAL] If true returns several quality measures according to  ISO/IEC 29794-5. Default is false.</p>\n","type":"text"}]},"url":"https://{{server}}/v0/face_detections","description":"<p>Face detection can be performed via a <code>POST</code> to the <code>face_detections</code> endpoint according to the parameters listed below.</p>\n<p>As for any other example request in this documentation, an exhaustive list of possible returns is provided within the example responses that can be accessed directly via the drop-down list right next to each example request.</p>\n","urlObject":{"protocol":"https","path":["v0","face_detections"],"host":["{{server}}"],"query":[],"variable":[]}},"response":[{"id":"21b12a05-2467-4ecf-8705-c4263b0ea2d7","name":"Wrong orientation","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"205"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is in wrong orientation. Must be portrait.\",\n    \"capture_state\": \"wrong_orientation\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 0,\n            \"y\": 0\n        },\n        \"botton_right\": {\n            \"x\": 0,\n            \"y\": 0\n        }\n    }\n}"},{"id":"701de390-9c1f-4dca-bc16-b3403a3f993e","name":"Descentralized","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"193"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is not enough centralized.\",\n    \"capture_state\": \"descentralized\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 292,\n            \"y\": 29\n        },\n        \"botton_right\": {\n            \"x\": 435,\n            \"y\": 217\n        }\n    }\n}"},{"id":"905d585c-bf3e-48be-ab16-f1964c6bfdc5","name":"Too far","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"176"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is too far.\",\n    \"capture_state\": \"too_far\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 1025,\n            \"y\": 1342\n        },\n        \"botton_right\": {\n            \"x\": 1342,\n            \"y\": 1803\n        }\n    }\n}"},{"id":"b7ba5d9c-97a5-42ca-ace1-1837760be05a","name":"Too close","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"178"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 415,\n    \"message\": \"The image is too close.\",\n    \"capture_state\": \"too_close\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 250,\n            \"y\": 176\n        },\n        \"botton_right\": {\n            \"x\": 2171,\n            \"y\": 2977\n        }\n    }\n}"},{"id":"de7ff0f8-2ff2-4ae2-9e55-bed540ca3b64","name":"Adequate","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"159"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Success\",\n    \"capture_state\": \"adequate\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 161,\n            \"y\": 161\n        },\n        \"botton_right\": {\n            \"x\": 337,\n            \"y\": 397\n        }\n    }\n}"},{"id":"f7cd4cc8-512c-4cfc-9c76-02ea85f2207f","name":"No face detected","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","value":"{{api_user}}","type":"text"},{"key":"api_key","value":"{{api_key}}","type":"text"},{"key":"image","type":"file","src":[]}]},"url":"https://{{server}}/{{version}}/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"102"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 400,\n    \"message\": \"Could not detect a face. Try another image.\",\n    \"capture_state\": \"no_face\"\n}"},{"id":"463724f6-ebd4-4a9a-8299-e8b259128dd5","name":"Detecting quality measures","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"api_user","type":"text","value":"{{api_user}}","description":"(string) API user provided by a Saffe representative"},{"key":"api_key","type":"text","value":"{{api_key}}","description":"(string) API key provided by a Saffe representative"},{"key":"image","type":"file","description":"VGA-resolution facial image to be submitted to the facial detector","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/Users/gchiachia/Downloads/-001110460_0000025DerX8vwWTXcpoO0twckCOlwW_01.png"],"value":null},{"key":"quality_measures","value":"true","type":"text"}]},"url":"https://{{server}}/v0/face_detections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"781"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Server","value":"TornadoServer/6.1"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"message\": \"Success\",\n    \"capture_state\": \"adequate\",\n    \"face_rectangle\": {\n        \"top_left\": {\n            \"x\": 105,\n            \"y\": 142\n        },\n        \"bottom_right\": {\n            \"x\": 371,\n            \"y\": 511\n        }\n    },\n    \"quality_measures\": {\n        \"background_uniformity\": 0.22,\n        \"dynamic_range\": 0.88,\n        \"expression_neutrality\": 0.96,\n        \"eyes_open\": 0.98,\n        \"eyes_visible\": 0.87,\n        \"face_occlusion_prevention\": 0.89,\n        \"head_pose_pitch\": 9.9025,\n        \"head_pose_roll\": 1.5108,\n        \"head_pose_yaw\": 3.2556,\n        \"head_size\": 0.3743,\n        \"illumination_uniformity\": 0.78,\n        \"inter_eye_distance\": 119.2302,\n        \"luminance_mean\": 0.2122,\n        \"luminance_variance\": 0.0304,\n        \"mouth_closed\": 0.97,\n        \"mouth_occlusion_prevention\": 1,\n        \"natural_colour\": 1,\n        \"no_head_coverings\": 1,\n        \"over_exposure_prevention\": 1,\n        \"sharpness\": 1,\n        \"single_face_present\": 1,\n        \"under_exposure_prevention\": 1\n    }\n}"}],"_postman_id":"9b01a460-d63e-45fd-b3a1-37813f5f698d"}],"id":"c1f59ec8-bb88-4470-b43f-092fdb9ec389","description":"<p>Face detection is a required step in any facial recognition system. It is normally considered in the processing flow of facial recognition systems such as ours.</p>\n<p>However, there are use cases where the objective is only to detect the presence and location of a face in the image, without necessarily submitting the image for liveness detection or facial recognition. This possibility is addressed here.</p>\n<p>Our facial detection implementation detects the most relevant face in the image, returning the location of the top-left and the bottom-right corners of a rectangle surrounding the face.</p>\n<p>Assuming that the facial image being analysed is a \"raw\" image captured by a frontal camera of some device, the detection also checks whether the facial image meets certain criteria for a proper facial recognition and liveness detection, being the most relevant criteria the following:</p>\n<ul>\n<li><em>Centralization of the face</em>: It evaluates if the face is enough centralized in the image.</li>\n<li><em>Distance to the camera</em>: It evaluates if the face is too far from or too close to the camera.</li>\n<li><em>Orientation</em>: It requires that the image be portrait.</li>\n</ul>\n<p>In case some criteria for a proper facial image is not met, information with regards to the failed criteria is returned in addition to the detected rectangle.</p>\n","event":[{"listen":"prerequest","script":{"id":"b18c9484-8849-44a1-81e8-eac40b629898","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"9ceb9897-0e02-497d-b309-6bd0361f3a26","type":"text/javascript","exec":[""]}}],"_postman_id":"c1f59ec8-bb88-4470-b43f-092fdb9ec389"}],"event":[{"listen":"prerequest","script":{"id":"5c525411-364a-4b7d-90de-d2e4ccd7e010","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"d0119aaa-32a2-4f4e-9ffa-f7eb507f6536","type":"text/javascript","exec":[""]}}],"variable":[{"key":"baseUrl","value":"http://localhost:3000"}]}