back  Back to APIs

Face Verification

{{el |capitalize:true}}

{{username ? 'subscribe' : 'start free trial'}}

Remaining API Counts:

{{(token.limit-token.counter) || '0' }}
Remaining API Count : {{(token.limit-token.counter) || '0' }}

API Overview

One of the earliest and most well defined use cases of Deep Learning has been face identification and verification. Arya’s face recognition module is one of the robust modules trained to recognise and match faces from a variety of sources such as surveillance footage or images

try it out

( Click on the image to enlarge )

Tutorial: Build frictionless customer onboarding using AI APIs

Explore this tutorial to understand easy integration of our onboarding APIs into your existing processes

Read More

Try the API

Please drag and drop files or click to browse.

Drag and Drop

or Click to browse files

Drag and Drop

or Click to browse files

Please wait...

Faces Matched!
Faces
Not Matched!

Matching Score: {{output.score |percent}}%

Samples to try

Please select sample images from each section and click SUBMIT to test the api.

Image 1
Image 2
Faces Matched!
Faces
Not Matched!

Matching Score: {{outputSample.score |percent}}%

Documentation

POST

{{url}}/api/v1/verifyFace

API Token

  Regenerate

{{tokenDisplay}}  

API UAT Token

{{tokenUDisplay}}  

Usage and Code Samples

curl --location --request POST '{{url}}/api/v1/verifyFace' \
--header 'token: < your private token >' \
--header 'content-type: application/json' \
--data-raw '{
	"doc1_type":'image',
	"doc2_type":'image',
	"img1_base64": '< base64 string of document >',
	"img2_base64": '< base64 string of document >',
	"req_id": '< req id string >'
}'
																						
OkHttpClient client = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("application/javascript");
  RequestBody body = RequestBody.create(mediaType, "{ "doc1_type":'image',"doc2_type":'image',"img1_base64": '< base64 string of document >',"img2_base64": '< base64 string of document >',"req_id": '< req id string >'  }");
  Request request = new Request.Builder()
	.url("{{url}}/api/v1/verifyFace")
	.method("POST", body)
	.addHeader("token", "< your private token >")
	.addHeader("content-type", "application/json")
	.build();
  Response response = client.newCall(request).execute();
require "uri"
require "net/http"
url = URI("{{url}}/api/v1/verifyFace")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["token"] = "< your private token >"
request["content-type"] = "application/json"
request.body = "{"doc1_type":'image',"doc2_type":'image',img1_base64: '< base64 string of document >',"img2_base64": '< base64 string of document >',"req_id": < req id string >  }"
response = https.request(request)
puts response.read_body
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_easy_setopt(curl, CURLOPT_URL, "{{url}}/api/v1/verifyFace");
  curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
  curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
  struct curl_slist *headers = NULL;
  headers = curl_slist_append(headers, "token: < your private token >");
  headers = curl_slist_append(headers, "content-type: application/json");
  curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
  const char *data = "{"doc1_type":'image',"doc2_type":'image',"img1_base64": '< base64 string of document >',"img2_base64": '< base64 string of document >',"req_id": < req id string >  }";
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
  res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
																					
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{url}}/api/v1/verifyFace',
  'headers': {
	'token': '< your private token >',
	'content-type':'application/json'
  },
  body: '{"doc1_type":'image',"doc2_type":'image',"img1_base64": '< base64 string of document >',"img2_base64": '< base64 string of document >',"req_id": < req id string >  }'
	};
	request(options, function (error, response) {
	if (error) throw new Error(error);
console.log(response.body);
});
var client = new RestClient("{{url}}/api/v1/verifyFace");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("token", "< your private token >");
request.AddHeader("content-type", "application/json");
var body = @"{" + "" +
@"    "doc1_type": 'image'," + "" +
@"    "img1_base64": '< base64 string of document >'," + "" +
@"    "doc2_type": 'image'," + "" +
@"    "img2_base64": '< base64 string of document >'," + "" +
@"    "req_id": < req id string >" + "" +
@"  }";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{url}}/api/v1/verifyFace');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
  'token' => '< your private token >',
  'content-type' => 'application/json'
));
$request->setBody('{"doc1_type":'image',"doc2_type":'image',"img1_base64": '< base64 string of document >',"img2_base64": '< base64 string of document >',"req_id": < req id string >  }');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
	echo $response->getBody();
  }
  else {
	echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
	$response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
?>
use Data::Dumper;
use WWW::SwaggerClient::Configuration;
use WWW::SwaggerClient::DefaultApi;
my $api_instance = WWW::SwaggerClient::DefaultApi->new();
my $body = WWW::SwaggerClient::Object::V1_lengthofstayprediction_body->new(); # V1_lengthofstayprediction_body | 
my $token = token_example; # String | 
eval { 
	my $result = $api_instance->apiV1LengthOfStayPredictionPost(body => $body, token => $token, content-type=>'application/json');
	print Dumper($result);
};
if ($@) {
	warn "Exception when calling DefaultApi->apiV1LengthOfStayPredictionPost: $@";
}
																				
import requests
url = "{{url}}/api/v1/verifyFace"
payload = {"doc1_type":'image',"doc2_type":'image',"img1_base64": '< base64 string of document >',"img2_base64": '< base64 string of document >', "req_id": < req id string >  }
headers = {
  'token': '< your private token >',
  'content-type':'application/json'
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
	

Request Parameters

Header parameters

Name Description
token
String

Body parameters

Name Description
body {
  "doc1_type" : < string >,
  "doc2_type" : < string >,
  "img1_base64" : < string >,
   "img2_base64" : < string >,
  "req_id" : < string >,
}

Response Parameters

Status: 200 - API Request Successful

Body parameters

Name Description
body {
  "match" : < flag >,
  "score" : < number >,
  "req_id" : < string >,
  "success": < flag >,
  "error_message": < string >,
}

Field Details

Request Field Details

Fields Values/Description
doc1_type “image”
doc2_type “image”
req_id Unique request ID used for processing requests
img1_base64 Base64 encoded string of the document
img2_base64 Base64 encoded string of the document

Response Field Details

Fields Values/Description
req_id Corresponding request id
success Flag if the request is processed successfully
match Flag whether the two faces match or not
error_message If success is False then: Error message
score Similarity score between the two faces