Crear una Persona
Endpoint
https://api.verifik.co/v2/face-recognition/persons
La API de Crear Persona te permite crear una nueva persona dentro del sistema de reconocimiento facial. Puedes asociar una persona con su nombre, imágenes, género, fecha de nacimiento, nacionalidad, colecciones y notas adicionales.
Encabezados
Content-Type
Tipo: String
Requerido: Requerido
Valor: application/json
Authorization
Tipo: String
Requerido: Requerido
Valor: Bearer <token>
Parámetros
name
Tipo: String
Requerido: Sí
Nombre completo de la persona.
images
Tipo: Array de String
Requerido: Sí
Imágenes codificadas en Base64 para reconocimiento.
gender
Tipo: String
Requerido: No
Género de la persona (M o F).
date_of_birth
Tipo: String (ISO8601)
Requerido: No
Fecha de nacimiento de la persona.
nationality
Tipo: String
Requerido: No
Nacionalidad de la persona.
collections
Tipo: Array de String
Requerido: No
Array de IDs de colección relacionados con esta persona.
notes
Tipo: String
Requerido: No
Notas adicionales sobre la persona.
Solicitud
- Node.js
- Python
- PHP
- Go
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://api.verifik.co/v2/face-recognition/persons',
data: {
name: "John Doe",
images: [
"base64_encoded_image_1",
"base64_encoded_image_2"
],
gender: "M",
date_of_birth: "1990-01-15",
"nationality": "US",
"collections": ["collection_123456789"],
"notes": "Cliente VIP"
},
headers: {
Accept: 'application/json',
Authorization: 'jwt <tu_token>'
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import http.client
import json
conn = http.client.HTTPSConnection("api.verifik.co")
payload = json.dumps({
"name": "John Doe",
"images": [
"base64_encoded_image_1",
"base64_encoded_image_2"
],
"gender": "M",
"date_of_birth": "1990-01-15",
"nationality": "US",
"collections": ["collection_123456789"],
"notes": "Cliente VIP"
})
headers = {
'Accept': "application/json",
'Authorization': "JWT token",
'Content-Type': 'application/json'
}
conn.request("POST", "/v2/face-recognition/persons", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.verifik.co/v2/face-recognition/persons', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'JWT token',
'Content-Type' => 'application/json',
],
'json' => [
'name' => 'John Doe',
'images' => [
'base64_encoded_image_1',
'base64_encoded_image_2'
],
'gender' => 'M',
'date_of_birth' => '1990-01-15',
'nationality' => 'US',
'collections' => ['collection_123456789'],
'notes' => 'Cliente VIP'
]
]);
echo $response->getBody();
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.verifik.co/v2/face-recognition/persons"
payload := map[string]interface{}{
"name": "John Doe",
"images": []string{"base64_encoded_image_1", "base64_encoded_image_2"},
"gender": "M",
"date_of_birth": "1990-01-15",
"nationality": "US",
"collections": []string{"collection_123456789"},
"notes": "Cliente VIP",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "JWT token")
req.Header.Add("Content-Type", "application/json")
client := &http.Client{}
res, _ := client.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Ejemplo de Respuesta
- 200 OK
import Foundation
let headers = [
"Accept": "application/json",
"Authorization": "JWT token",
"Content-Type": "application/json"
]
let parameters = [
"name": "John Doe",
"images": [
"base64_encoded_image_1",
"base64_encoded_image_2"
],
"gender": "M",
"date_of_birth": "1990-01-15",
"nationality": "US",
"collections": ["collection_123456789"],
"notes": "Cliente VIP"
] as [String : Any]
let postData = try? JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api.verifik.co/v2/face-recognition/persons")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error as Any)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
Respuesta
- 200
- 400
- 400 (Falta Nombre)
{
"success": true,
"data": {
"_id": "person_123456789",
"name": "John Doe",
"gender": "M",
"date_of_birth": {
"year": 1990,
"month": 1,
"day": 15
},
"nationality": "US",
"images": [
"base64_encoded_image_1",
"base64_encoded_image_2"
],
"collections": ["collection_123456789"],
"notes": "Cliente VIP",
"client": "client_123456789",
"status": "active",
"faceEncodings": [
"face_encoding_1",
"face_encoding_2"
],
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
}
{
"error": "Formato de imagen inválido",
"message": "INVALID_IMAGE_FORMAT"
}
{
"error": "El nombre de la persona es requerido",
"message": "NAME_REQUIRED"
}
Características
- Creación de Persona: Crea nuevos individuos en el sistema de reconocimiento facial
- Carga de Imágenes: Soporte para múltiples imágenes codificadas en Base64
- Asignación de Colección: Asigna personas a colecciones específicas
- Procesamiento Automático: Las codificaciones faciales se generan automáticamente
- Respuesta Estructurada: Formato de datos organizado para fácil integración
- Múltiples Lenguajes de Programación: Soporte para JavaScript, Python, PHP y Swift
- Manejo de Errores: Respuestas de error completas para varios escenarios