curl --request POST \
--url https://api.cloudglue.dev/v1/face-match \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_image": {
"url": "<string>",
"base64_image": "<string>"
},
"target_video_url": "<string>",
"max_faces": 2000,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.cloudglue.dev/v1/face-match"
payload = {
"source_image": {
"url": "<string>",
"base64_image": "<string>"
},
"target_video_url": "<string>",
"max_faces": 2000,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
source_image: {url: '<string>', base64_image: '<string>'},
target_video_url: '<string>',
max_faces: 2000,
face_detection_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
frame_extraction_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.cloudglue.dev/v1/face-match', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cloudglue.dev/v1/face-match",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source_image' => [
'url' => '<string>',
'base64_image' => '<string>'
],
'target_video_url' => '<string>',
'max_faces' => 2000,
'face_detection_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'frame_extraction_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cloudglue.dev/v1/face-match"
payload := strings.NewReader("{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cloudglue.dev/v1/face-match")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudglue.dev/v1/face-match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"face_match_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": 123,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_face_bounding_box": {
"height": 0.5,
"width": 0.5,
"top": 0.5,
"left": 0.5
},
"data": {
"object": "list",
"total": 123,
"limit": 50,
"offset": 1,
"faces_matches": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"face_bounding_box": {
"height": 0.5,
"width": 0.5,
"top": 0.5,
"left": 0.5
},
"similarity": 50,
"frame_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": 123,
"thumbnail_url": "<string>"
}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Find Face Match in Video
Search for a source face in a target video using facial recognition
curl --request POST \
--url https://api.cloudglue.dev/v1/face-match \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_image": {
"url": "<string>",
"base64_image": "<string>"
},
"target_video_url": "<string>",
"max_faces": 2000,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'import requests
url = "https://api.cloudglue.dev/v1/face-match"
payload = {
"source_image": {
"url": "<string>",
"base64_image": "<string>"
},
"target_video_url": "<string>",
"max_faces": 2000,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
source_image: {url: '<string>', base64_image: '<string>'},
target_video_url: '<string>',
max_faces: 2000,
face_detection_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
frame_extraction_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
})
};
fetch('https://api.cloudglue.dev/v1/face-match', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cloudglue.dev/v1/face-match",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source_image' => [
'url' => '<string>',
'base64_image' => '<string>'
],
'target_video_url' => '<string>',
'max_faces' => 2000,
'face_detection_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'frame_extraction_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cloudglue.dev/v1/face-match"
payload := strings.NewReader("{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cloudglue.dev/v1/face-match")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudglue.dev/v1/face-match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source_image\": {\n \"url\": \"<string>\",\n \"base64_image\": \"<string>\"\n },\n \"target_video_url\": \"<string>\",\n \"max_faces\": 2000,\n \"face_detection_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"frame_extraction_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}"
response = http.request(request)
puts response.read_body{
"face_match_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": 123,
"face_detection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"frame_extraction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"source_face_bounding_box": {
"height": 0.5,
"width": 0.5,
"top": 0.5,
"left": 0.5
},
"data": {
"object": "list",
"total": 123,
"limit": 50,
"offset": 1,
"faces_matches": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"face_bounding_box": {
"height": 0.5,
"width": 0.5,
"top": 0.5,
"left": 0.5
},
"similarity": 50,
"frame_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"timestamp": 123,
"thumbnail_url": "<string>"
}
]
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Face match request parameters
Source image containing the face to search for
Show child attributes
Show child attributes
URL of the target video to search in
Maximum number of faces to return
1 <= x <= 4000Optional: Use previously analyzed face detections in video
Optional: Use previously extracted frames
Optional: Frame extraction configuration
Show child attributes
Show child attributes
Response
Face match job created successfully
Unique identifier for the face match job
Status of the face match job
pending, processing, completed, failed Unix timestamp in milliseconds when the job was created
ID of the face detection analysis used
ID of the frame extraction used
ID of the target file
Bounding box of the source face in the source image (null when job is pending/processing)
Show child attributes
Show child attributes
Face match results (only present when status is completed)
Show child attributes
Show child attributes