Validate and assess a selfie via session (mobile)
curl --request POST \
--url https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie")
.post(null)
.addHeader("Authorization", "Bearer <token>")
.build()
val response = client.newCall(request).execute()import Foundation
let url = URL(string: "https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Authorization": "Bearer <token>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"valid": true,
"face_detected": true,
"message": "<string>",
"assessed": true
}Validate and assess a selfie via session (mobile)
Per-step selfie validation for the cross-device flow. Always checks that a face is present. When the request also carries the liveness capture (liveness_frame files and the liveness_token field), it runs the selfie assessment now (liveness, age estimation, and the face match against the document already processed by validate-document) and the session carries the DECISION, never the selfie or the frames, to submit, which then needs no images. assessed: false means the assessment did not run (no capture sent, or nothing to match against) and the submit must carry the selfie and liveness as before. Free, no credits consumed.
POST
/
api
/
v1
/
verify
/
session
/
{id}
/
validate-selfie
Validate and assess a selfie via session (mobile)
curl --request POST \
--url https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie")
.post(null)
.addHeader("Authorization", "Bearer <token>")
.build()
val response = client.newCall(request).execute()import Foundation
let url = URL(string: "https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["Authorization": "Bearer <token>"]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))using RestSharp;
var options = new RestClientOptions("https://api.tuteliq.ai/api/v1/verify/session/{id}/validate-selfie");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
false{
"valid": true,
"face_detected": true,
"message": "<string>",
"assessed": true
}