Preview Face Proof
Endpointβ
POST https://api.verifik.co/v2/zelf-proof/preview
Examines a zero-knowledge face proof to view its metadata and configuration without performing actual biometric verification. This is useful for inspecting proof contents and settings.
Headersβ
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Paramsβ
| Name | Type | Required | Description |
|---|---|---|---|
zelfProof | string | Yes | The encrypted face proof token to examine |
verifierKey | string | No | Verifier key for additional validation |
Requestβ
- Node.js
- PHP
- Python
- Go
const fetch = require("node-fetch");
async function run() {
const res = await fetch("https://api.verifik.co/v2/zelf-proof/preview", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
body: JSON.stringify({
os: "DESKTOP",
zelfProof: "AudwN6Jmxms3tEOYQg5fyZCEYLwiDuFFheQfYTmKQCUAJ99y4MWI/7A6ouXW1VIR8fAVCL4rgbNKYR/cjZpS085JPq4vedbB08ZIansX2cW+XPyJjFKRnY5qxRgwUfyzLMrCpu83qdORwfdX3YOXo4Poff0eYNtqho3h+bJB1uaMvK9QHN8uYWR9rxafMqFtNWJWSuC/V3yKeG3eRYSaoNcW6mHycjQMxvVcpDn1fMWK+93/8h12/iyBBbwH3JSlki4LlgaOeP/S8o1CRSrFpmysSpJDoh+pesDIpuTxlK7WMeNvv33n+nj+1oUZ51ijyV/m9CMvY+VjvuMzAZJogHh+dNEi57YWAVZTBBiwu/M02mPXCQcSYNyNCD1EPyFcEEGqVXRZb5fghdi0qpxN57YZ3dspMlmXnlv0Bq6nbnO4/KmuWtZqx/1riFK3ejb+EJu23p281IeXxAMet1+rHgPgQZYs4j7CSIHeGnY9YL1A53Ozb2/bYddQoAdwRx6M6BdtLbUG4XbUB3uZT3azQvf86Um0SnWrsJ1GejiIrlAXliOKqLc/sHY8XNWaDen0WzPB1R5dFi7Sn+egQSf2TA1oN0AhCxlBcJ85yHSnIYMOfLk+NnLgt3ImOcku9dZIWkhpvAcvAPqNx5437kBmo9bWchzZ5idfNhtCpgCkRyz8/yImGYnQH5YFBrsap0/ZeW5ISVOCooxEXFonWrUTjO5hqm/lfWiw16Lq8uvOi8CszvwuSQUN4O7gCdzUzgLoeDBv8XHXRkrTuKkfSPB2slZ3J1xHysMLW/o2Hv6v6e99rDwaL7UaMa/zZ5o1zr87/sz9SBWpQ/t8vGHjk68KmvMnnk3vQOOcrogrDN5fwKPqSwEQp7WnvKhm8ShBYt+T"
}),
});
console.log(await res.json());
}
run();
<?php
$ch = curl_init("https://api.verifik.co/v2/zelf-proof/preview");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: Bearer " . getenv("VERIFIK_TOKEN")
]);
$body = json_encode([
"os" => "DESKTOP",
"zelfProof" => "AudwN6Jmxms3tEOYQg5fyZCEYLwiDuFFheQfYTmKQCUAJ99y4MWI/7A6ouXW1VIR8fAVCL4rgbNKYR/cjZpS085JPq4vedbB08ZIansX2cW+XPyJjFKRnY5qxRgwUfyzLMrCpu83qdORwfdX3YOXo4Poff0eYNtqho3h+bJB1uaMvK9QHN8uYWR9rxafMqFtNWJWSuC/V3yKeG3eRYSaoNcW6mHycjQMxvVcpDn1fMWK+93/8h12/iyBBbwH3JSlki4LlgaOeP/S8o1CRSrFpmysSpJDoh+pesDIpuTxlK7WMeNvv33n+nj+1oUZ51ijyV/m9CMvY+VjvuMzAZJogHh+dNEi57YWAVZTBBiwu/M02mPXCQcSYNyNCD1EPyFcEEGqVXRZb5fghdi0qpxN57YZ3dspMlmXnlv0Bq6nbnO4/KmuWtZqx/1riFK3ejb+EJu23p281IeXxAMet1+rHgPgQZYs4j7CSIHeGnY9YL1A53Ozb2/bYddQoAdwRx6M6BdtLbUG4XbUB3uZT3azQvf86Um0SnWrsJ1GejiIrlAXliOKqLc/sHY8XNWaDen0WzPB1R5dFi7Sn+egQSf2TA1oN0AhCxlBcJ85yHSnIYMOfLk+NnLgt3ImOcku9dZIWkhpvAcvAPqNx5437kBmo9bWchzZ5idfNhtCpgCkRyz8/yImGYnQH5YFBrsap0/ZeW5ISVOCooxEXFonWrUTjO5hqm/lfWiw16Lq8uvOi8CszvwuSQUN4O7gCdzUzgLoeDBv8XHXRkrTuKkfSPB2slZ3J1xHysMLW/o2Hv6v6e99rDwaL7UaMa/zZ5o1zr87/sz9SBWpQ/t8vGHjk68KmvMnnk3vQOOcrogrDN5fwKPqSwEQp7WnvKhm8ShBYt+T"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import os, requests
url = "https://api.verifik.co/v2/zelf-proof/preview"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"
}
payload = {
"os": "DESKTOP",
"zelfProof": "AudwN6Jmxms3tEOYQg5fyZCEYLwiDuFFheQfYTmKQCUAJ99y4MWI/7A6ouXW1VIR8fAVCL4rgbNKYR/cjZpS085JPq4vedbB08ZIansX2cW+XPyJjFKRnY5qxRgwUfyzLMrCpu83qdORwfdX3YOXo4Poff0eYNtqho3h+bJB1uaMvK9QHN8uYWR9rxafMqFtNWJWSuC/V3yKeG3eRYSaoNcW6mHycjQMxvVcpDn1fMWK+93/8h12/iyBBbwH3JSlki4LlgaOeP/S8o1CRSrFpmysSpJDoh+pesDIpuTxlK7WMeNvv33n+nj+1oUZ51ijyV/m9CMvY+VjvuMzAZJogHh+dNEi57YWAVZTBBiwu/M02mPXCQcSYNyNCD1EPyFcEEGqVXRZb5fghdi0qpxN57YZ3dspMlmXnlv0Bq6nbnO4/KmuWtZqx/1riFK3ejb+EJu23p281IeXxAMet1+rHgPgQZYs4j7CSIHeGnY9YL1A53Ozb2/bYddQoAdwRx6M6BdtLbUG4XbUB3uZT3azQvf86Um0SnWrsJ1GejiIrlAXliOKqLc/sHY8XNWaDen0WzPB1R5dFi7Sn+egQSf2TA1oN0AhCxlBcJ85yHSnIYMOfLk+NnLgt3ImOcku9dZIWkhpvAcvAPqNx5437kBmo9bWchzZ5idfNhtCpgCkRyz8/yImGYnQH5YFBrsap0/ZeW5ISVOCooxEXFonWrUTjO5hqm/lfWiw16Lq8uvOi8CszvwuSQUN4O7gCdzUzgLoeDBv8XHXRkrTuKkfSPB2slZ3J1xHysMLW/o2Hv6v6e99rDwaL7UaMa/zZ5o1zr87/sz9SBWpQ/t8vGHjk68KmvMnnk3vQOOcrogrDN5fwKPqSwEQp7WnvKhm8ShBYt+T"
}
r = requests.post(url, json=payload, headers=headers)
print(r.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]interface{}{
"os": "DESKTOP",
"zelfProof": "AudwN6Jmxms3tEOYQg5fyZCEYLwiDuFFheQfYTmKQCUAJ99y4MWI/7A6ouXW1VIR8fAVCL4rgbNKYR/cjZpS085JPq4vedbB08ZIansX2cW+XPyJjFKRnY5qxRgwUfyzLMrCpu83qdORwfdX3YOXo4Poff0eYNtqho3h+bJB1uaMvK9QHN8uYWR9rxafMqFtNWJWSuC/V3yKeG3eRYSaoNcW6mHycjQMxvVcpDn1fMWK+93/8h12/iyBBbwH3JSlki4LlgaOeP/S8o1CRSrFpmysSpJDoh+pesDIpuTxlK7WMeNvv33n+nj+1oUZ51ijyV/m9CMvY+VjvuMzAZJogHh+dNEi57YWAVZTBBiwu/M02mPXCQcSYNyNCD1EPyFcEEGqVXRZb5fghdi0qpxN57YZ3dspMlmXnlv0Bq6nbnO4/KmuWtZqx/1riFK3ejb+EJu23p281IeXxAMet1+rHgPgQZYs4j7CSIHeGnY9YL1A53Ozb2/bYddQoAdwRx6M6BdtLbUG4XbUB3uZT3azQvf86Um0SnWrsJ1GejiIrlAXliOKqLc/sHY8XNWaDen0WzPB1R5dFi7Sn+egQSf2TA1oN0AhCxlBcJ85yHSnIYMOfLk+NnLgt3ImOcku9dZIWkhpvAcvAPqNx5437kBmo9bWchzZ5idfNhtCpgCkRyz8/yImGYnQH5YFBrsap0/ZeW5ISVOCooxEXFonWrUTjO5hqm/lfWiw16Lq8uvOi8CszvwuSQUN4O7gCdzUzgLoeDBv8XHXRkrTuKkfSPB2slZ3J1xHysMLW/o2Hv6v6e99rDwaL7UaMa/zZ5o1zr87/sz9SBWpQ/t8vGHjk68KmvMnnk3vQOOcrogrDN5fwKPqSwEQp7WnvKhm8ShBYt+T",
}
b, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.verifik.co/v2/zelf-proof/preview", bytes.NewBuffer(b))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer "+os.Getenv("VERIFIK_TOKEN"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var out map[string]interface{}
json.NewDecoder(resp.Body).Decode(&out)
fmt.Println(out)
}
Responseβ
- 200
- 401
- 403
- 409
- 500
{
"data": {
"passwordLayer": "WithPassword",
"publicData": {
"a": "1",
"vida": "true",
"b": "2"
},
"requireLiveness": true
}
}
{
"message": "Authentication required",
"code": "UNAUTHORIZED"
}
{
"message": "Access Forbidden",
"code": "FORBIDDEN"
}
{
"message": "\"zelfProof\" is required",
"code": "MissingParameter"
}
{
"message": "internal_error",
"code": "ERROR"
}
Notesβ
- The
passwordLayerfield indicates whether the proof is password-protected (WithPasswordorWithoutPassword) publicDatacontains the public data that was stored with the proof (this is visible to anyone with the proof)requireLivenessindicates whether liveness detection was required when the proof was created- This endpoint does not perform biometric verification - it only examines the proof metadata
- No credits are charged for preview operations
- The
osparameter is required but doesn't affect the preview functionality - This is useful for debugging, inspection, and understanding proof configuration before attempting verification
- Private metadata is not exposed in preview mode for security reasons