ðĪ āļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļē (Face Detection)
ðĪ āļĢāļ°āļāļāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļē
āļĒāļīāļāļāļĩāļāđāļāļāļĢāļąāļāļŠāļđāđ Face Detection API āļāļĨāļīāļāļ āļąāļāļāđ AI āļāļĩāđāļāļąāļāļāļēāđāļāļĒāļāļĢāļīāļĐāļąāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ āļāļģāļāļąāļ API āļāļāļāđāļĢāļēāļāļđāļāļāļāļāđāļāļāļĄāļēāđāļāļ·āđāļāļāļĢāļ§āļāļāļąāļāđāļĨāļ°āđāļĒāļāđāļāļŦāļāđāļēāļāļēāļāļĢāļđāļāļ āļēāļāļāđāļ§āļĒāļāļ§āļēāļĄāđāļĄāđāļāļĒāļģāđāļĨāļ°āļāļ§āļēāļĄāđāļĢāđāļ§āļŠāļđāļ API āļĢāļāļāļĢāļąāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāļāļąāđāļāđāļāļāđāļāļĩāđāļĒāļ§āđāļĨāļ°āđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļēāļāļĢāđāļāļĄāļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāđāļŦāđāļāļ°āđāļāļāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ
āļāļāļĨāļāļāđāļāđāđāļĨāļĒ!â
Example Images (Click to try)

Demo key is limited to 10 requests per day per IP
Click here to get your API key
āđāļĢāļīāđāļĄāļāđāļāđāļāđāļāļēāļâ
-
āļāđāļāļāļģāļŦāļāļāđāļāļ·āđāļāļāļāđāļ
- API key āļāļēāļ āđāļāđāļāļāļāđāđāļāļāđāļāđāļĨāļĒāļĩ
- āđāļāļĨāđāļĢāļđāļāļ āļēāļāļāļĩāđāļĄāļĩāđāļāļŦāļāđāļē
- āļĢāļđāļāđāļāļāļāļĩāđāļĢāļāļāļĢāļąāļ: JPEG, JPG, PNG
- āļāļāļēāļāđāļāļĨāđāļŠāļđāļāļŠāļļāļ: 10MB
-
āđāļĢāļīāđāļĄāļāđāļāļāļĒāđāļēāļāļĢāļ§āļāđāļĢāđāļ§
- āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĩāđāļĢāļ§āļāđāļĢāđāļ§
- āļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāļāļĩāđāđāļĄāđāļāļĒāļģāļŠāļđāļ
- āļĢāļāļāļĢāļąāļāļĢāļđāļāđāļāļāđāļāļĨāđāļŦāļĨāļēāļĒāļĢāļđāļāđāļāļ
- āļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāđāļŦāđāļāļ°āđāļāļāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ
-
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļ
- āļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāđāļāļĩāđāļĒāļ§āđāļĨāļ°āđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļē
- āļāļīāļāļąāļāļāļĨāđāļāļāļĨāđāļāļĄāļĢāļāļāđāļāļŦāļāđāļē
- āļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļ
- āļāļēāļĢāļŠāļāļąāļāļĢāļđāļāļ āļēāļāđāļāļŦāļāđāļē
- āļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāđāļŦāđāļāļ°āđāļāļāđāļāļāļēāļ°āļāļĢāļīāļĐāļąāļ
-
āļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļāļāļīāļāļąāļāļīāļāļēāļĄāļāļāļĢāļ°āđāļāļĩāļĒāļ
- āđāļāđāļāđāļāļāļēāļĄ GDPR āđāļĨāļ° PDPA
- āđāļĄāđāļĄāļĩāļāļēāļĢāđāļāđāļāļĢāļąāļāļĐāļēāļāđāļāļĄāļđāļĨāļŦāļĨāļąāļāļāļēāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
āļāļĢāļļāļāļēāđāļĒāļĩāđāļĒāļĄāļāļĄ API Portal āđāļāļ·āđāļāļāļđ API key āļāļĩāđāļĄāļĩāļāļĒāļđāđāļāļāļāļāļļāļāļŦāļĢāļ·āļāļāļ API key āđāļŦāļĄāđ
āļāļąāļ§āļāļĒāđ āļēāļâ
āļāļēāļĢāļĢāđāļāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāđāļāļĩāđāļĒāļ§:â
āļāļąāļ§āļāļĒāđāļēāļāļ āļēāļ

curl --location --request POST 'https://api.iapp.co.th/face_detect_single' \
--header 'apikey: {Your API Key}' \
--form 'file=@"{Your Image File Path}"'
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāđāļāļĩāđāļĒāļ§:â
{
"bbox": {
"xmax": 320.15,
"xmin": 100.23,
"ymax": 450.78,
"ymin": 150.45
},
"detection_score": 0.9998989105224609,
"face": "/9j/4AAQ...base64_encoded_image",
"message": "success",
"process_time": 0.41
}
āļāļēāļĢāļĢāđāļāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļē:â
āļāļąāļ§āļāļĒāđāļēāļāļ āļēāļ

curl --location --request POST 'https://api.iapp.co.th/face_detect_multi' \
--header 'apikey: {Your API Key}' \
--form 'file=@"{Your Image File Path}"'
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļē:â
{
"message": "success",
"process_time": 0.67,
"result": [
{
"bbox": {
"xmax":1317.7054443359375,
"xmin":1075.64013671875,
"ymax":555.1968994140625,
"ymin":243.38815307617188
},
"detection_score": 0.99,
"face": "/9j/4AAQ...base64_encoded_image"
},
{
"bbox": {
"xmax":684.1102294921875,
"xmin":484.45068359375,
"ymax":520.4813842773438,
"ymin":265.50823974609375
},
"detection_score": 0.99,
"face": "/9j/4AAQ...base64_encoded_image"
},
...
]
}
āļāļļāļāļŠāļĄāļāļąāļāļīāđāļĨāļ°āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļâ
āļāļļāļāļŠāļĄāļāļąāļāļīāļŦāļĨāļąāļâ
- āļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāđāļāļĩāđāļĒāļ§āđāļĨāļ°āđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļē
- āļāļīāļāļąāļāļāļĨāđāļāļāļĨāđāļāļĄāļĢāļāļāđāļāļŦāļāđāļē
- āļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļ
- āļĢāļđāļāļ āļēāļāđāļāļŦāļāđāļēāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ Base64
- āļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāđāļŦāđāļāļ°āđāļāļāđāļāļāļēāļ°āļāļĢāļīāļĐāļąāļ
āļāļīāļĨāļāđāļāļĩāđāļĢāļāļāļĢāļąāļâ
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāđāļāļĩāđāļĒāļ§â
| āļāļīāļĨāļāđ | āļāļāļīāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| bbox | Dictionary | āļāļīāļāļąāļāļāļĨāđāļāļāļĨāđāļāļĄāļĢāļāļāđāļāļŦāļāđāļē |
| detection_score | Float | āļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļē |
| face | String | āļĢāļđāļāļ āļēāļāđāļāļŦāļāđāļēāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ Base64 |
| message | String | āļŠāļāļēāļāļ°āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
| process_time | Float | āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļāļ§āļīāļāļēāļāļĩ |
āļāļēāļĢāļāļāļāļŠāļāļāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļēāđāļāļāļŦāļĨāļēāļĒāđāļāļŦāļāđāļēâ
| āļāļīāļĨāļāđ | āļāļāļīāļ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|---|
| message | String | āļŠāļāļēāļāļ°āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ |
| process_time | Float | āđāļ§āļĨāļēāđāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāđāļāļ§āļīāļāļēāļāļĩ |
| result | Array | āļāļēāļĢāđāđāļĢāļĒāđāļāļāļāđāļāļŦāļāđāļēāļāļĩāđāļāļĢāļ§āļāļāļ |
| bbox | Dictionary | āļāļīāļāļąāļāļāļĨāđāļāļāļĨāđāļāļĄāļĢāļāļāđāļāļŦāļāđāļē |
| detection_score | Float | āļāļ°āđāļāļāļāļ§āļēāļĄāđāļāļ·āđāļāļĄāļąāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļāļąāļāđāļāļŦāļāđāļē |
| face | String | āļĢāļđāļāļ āļēāļāđāļāļŦāļāđāļēāļāļĩāđāđāļāđāļēāļĢāļŦāļąāļŠ Base64 |
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Pythonâ
import requests
url = "https://api.iapp.co.th/face_detect_single"
payload = {}
files=[
('file',('{YOUR UPLOADED IMAGE}',open('{YOUR UPLOADED IMAGE}','rb'),'image/jpeg'))
]
headers = {
'apikey': '{YOUR API KEY}'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
JavaScriptâ
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('file', fs.createReadStream('/Users/iapp/Downloads/removebg_trial.png'));
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.iapp.co.th/face_detect_single',
headers: {
'apikey': 'YOUR_API_KEY',
...data.getHeaders()
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
PHPâ
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/face_detect_single',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('{YOUR UPLOADED IMAGE}')),
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR API KEY}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Swiftâ
let parameters = [
[
"key": "file",
"src": "{YOUR UPLOADED IMAGE}",
"type": "file"
]] as [[String: Any]]
let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/face_detect_single")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlinâ
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","file",
File("{YOUR API KEY}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/face_detect_single")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build()
val response = client.newCall(request).execute()
Javaâ
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","file",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{YOUR UPLOADED IMAGE}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/face_detect_single")
.method("POST", body)
.addHeader("apikey", "{YOUR API KEY}")
.build();
Response response = client.newCall(request).execute();
Dartâ
var headers = {
'apikey': '{YOUR API KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/face_detect_single'));
request.files.add(await http.MultipartFile.fromPath('file', '{YOUR UPLOADED IMAGE}'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
āļāđāļāļāļģāļāļąāļāđāļĨāļ°āđāļāļ§āļāļēāļāļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļâ
āļāđāļāļāļģāļāļąāļâ
- āļāļāļēāļāđāļāļĨāđāļŠāļđāļāļŠāļļāļ: 10MB
- āļĢāļđāļāđāļāļāļāļĩāđāļĢāļāļāļĢāļąāļ: JPEG, JPG, PNG
- āļāļģāļāļ§āļāđāļāļŦāļāđāļēāļŠāļđāļāļŠāļļāļāļāđāļāļ āļēāļ: 50