ðŠŠ API āļŠāļēāļĢāļāļĢāļāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āđāļĒāļāļāđāļāļĄāļđāļĨāļāļēāļāđāļāļāļŠāļēāļĢāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļ (JD) āļāđāļ§āļĒ AI ð
ðŠŠ AI āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāđāļĨāļ°āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļāđāļāļĢāļđāļāđāļāļ PDF āļŦāļĢāļ·āļāļĢāļđāļāļ āļēāļāđāļāļĒāđāļāđ OCR āđāļĨāļ°āđāļāļāļāļģāļĨāļāļāļ āļēāļĐāļēāđāļāļĒ
āđāļāļĢāļāļāļēāļĢāļāļĩāđāļĒāļąāļāļĢāļ§āļĄāļāļķāļāļāļąāļāļāđāļāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŠāļēāļĢāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļ (JD) (PDF, JPG, PNG) āļāļĢāļīāļāļēāļĢ iApp OCR āļāļ°āļāļķāļāļāđāļāļāļ§āļēāļĄāļāļīāļāļāļēāļ JD āđāļĨāļ°āđāļāļāļāļģāļĨāļāļ OpenThaiGPT āļāļ°āđāļāđāđāļāļāļēāļĢāđāļāļĨāļāļāđāļāļāļ§āļēāļĄāļāļĩāđāļāļķāļāļāļāļāļĄāļēāđāļāđāļāļāđāļāļĄāļđāļĨ JSON āļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļ āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŠāļģāļāļąāļāļāļĩāđāļāļķāļāļāļāļāļĄāļēāđāļāđāđāļāđ āļāļ·āđāļāļāļģāđāļŦāļāđāļāļāļēāļ āļāļ·āđāļāļāļĢāļīāļĐāļąāļ āļŠāļāļēāļāļāļĩāđāļāļąāđāļ āļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļ āļāļļāļāļŠāļĄāļāļąāļāļīāļāļĩāđāļāļģāđāļāđāļ āđāļĨāļ°āļāļąāļāļĐāļ°āļāļĩāđ AI āđāļāļ°āļāļģāļāļķāđāļāļāļģāđāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļāļāļēāļ āļāđāļāļĄāļđāļĨāļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāļāļēāļĢāļāļąāļāļāļđāđāļāļēāļāđāļāļĒāļāļąāļāđāļāļĄāļąāļāļī āļāļēāļĢāļŠāļĢāļĢāļŦāļēāļāļļāļāļĨāļēāļāļĢ āļŦāļĢāļ·āļāļ āļēāļĢāļāļīāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļāļāļĢāļąāļāļĒāļēāļāļĢāļāļļāļāļāļĨāļāļ·āđāļāđ
āļāļāļĨāļāļāđāļāđāļāļēāļ Demoâ
Example Images (Click to try)

Demo key is limited to 10 requests per day per IP
Click here to get your API key
āļāļĢāļļāļāļēāđāļĒāļĩāđāļĒāļĄāļāļĄ API Portal āđāļāļ·āđāļāļāļđ API key āļāļĩāđāļĄāļĩāļāļĒāļđāđāļāļāļāļāļļāļāļŦāļĢāļ·āļāļāļ API key āđāļŦāļĄāđ
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
āļāļąāļ§āļāļĒāđāļēāļ JDâ
Request:â
curl -X POST https://api.iapp.co.th/ocr/jd
-H "apikey: YOUR_API_KEY"
-F "file=@/path/to/sample_jd_2.png"
Response:â
{
"jobTitle": "āļŦāļąāļ§āļŦāļāđāļēāļāđāļēāļĒāđāļāļāđāļāđāļĨāļĒāļĩāļŠāļēāļĢāļŠāļāđāļāļĻ (Head of Information Technology)",
"companyName": null,
"location": null,
"salaryRange": null,
"responsibilities": [
"āļāļģāļāļąāļāļāļđāđāļĨāđāļĨāļ°āļāļ§āļāļāļļāļĄāļāļēāļāļāļāļāļāļđāđāđāļāđāļāļąāļāļāļąāļāļāļąāļāļāļēāđāļŦāđāđāļāļīāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļŠāļđāļāļŠāļļāļ",
"āļāļđāđāļĨ āļ§āļīāļāļąāļĒ āđāļĨāļ°āļāļąāļāļāļē āļĢāļ°āļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāļāļāļāļāļāļāđāļāļĢ āļĢāļ§āļĄāļāļķāļāļŪāļēāļĢāđāļāđāļ§āļĢāđ āļāļāļāļāđāđāļ§āļĢāđ āļĢāļ°āļāļāđāļāļĢāļ·āļāļāđāļēāļĒ āđāļĨāļ°āļāļēāļāļāđāļāļĄāļđāļĨāļŠāļēāļĢāļŠāļāđāļāļĻāļāļ·āđāļāđ āļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ",
"āļāļĢāļ§āļāļŠāļāļāđāļĨāļ°āļāļāļāļ§āļāļāļēāļĢāļāļąāļāļāļ·āđāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āļāļļāļāļāļĢāļāđāļāđāļāļāđāļ§āļ āđāļĨāļ°āļāļļāļāļāļĢāļāđāđāļāļĢāļ·āļāļāđāļēāļĒāļāļąāđāļāļŦāļĄāļ",
"āļāļđāđāļĨāđāļĨāļ°āļāļ§āļāļāļļāļĄāļāļēāļĢāļāļģāļĢāļļāļāļĢāļąāļāļĐāļēāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āļāļļāļāļāļĢāļāđāļāđāļāļāđāļ§āļ āđāļĨāļ°āļāļļāļāļāļĢāļāđāđāļāļĢāļ·āļāļāđāļēāļĒāļāļąāđāļāļŦāļĄāļ",
"āļāļđāđāļĨāđāļĨāļ°āļāļ§āļāļāļļāļĄāļāļēāļĢāļŠāļģāļĢāļāļāļāđāļāļĄāļđāļĨāļāļēāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļąāļāļāļēāļĢāļ°āļāļāđāļāļĢāļ·āļāļāđāļēāļĒāļāļāļāļāļāļāđāļāļĢ",
"āļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāļāļāļāļļāļāļĨāļēāļāļĢāđāļāļāļēāļĢāđāļāđāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļĨāļ°āļĢāļ°āļāļāļāđāļēāļāđ",
"āļāļąāļāļāļģāļāļāļāļĢāļ°āļĄāļēāļāļĢāļēāļĒāļāļĩāđāļĨāļ°āđāļāļāļāļēāļ",
"āļāļīāļāļāļēāļĄāđāļĨāļ°āļāļąāļāļāļēāļ āļēāļĢāļāļīāļāļāļĩāđāđāļāđāļĢāļąāļāļĄāļāļāļŦāļĄāļēāļĒāđāļŦāđāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ",
"āļāļāļīāļāļąāļāļīāļāļēāļāļāļ·āđāļāđ āļāļēāļĄāļāļĩāđāļāļđāđāļāļąāļāļāļąāļāļāļąāļāļāļēāļĄāļāļāļŦāļĄāļēāļĒ",
"āđāļŦāđāļāļ§āļēāļĄāļĢāđāļ§āļĄāļĄāļ·āļāđāļāļāļīāļāļāļĢāļĢāļĄāđāļĨāļ°āļĢāļ°āļāļāļāļāļāļāļĢāļīāļĐāļąāļ"
],
"qualifications": [
"āļāļĢāļīāļāļāļēāļāļĢāļĩ/āđāļ",
"āļŠāļēāļāļēāđāļāļāđāļāđāļĨāļĒāļĩāļŠāļēāļĢāļŠāļāđāļāļĻ āļ§āļīāļĻāļ§āļāļĢāļĢāļĄāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ āļŦāļĢāļ·āļāļŠāļēāļāļēāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļ",
"āļĄāļĩāļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļĒāđāļēāļāļāđāļāļĒ 2 āļāļĩ",
"āļāļēāļĒāļļ 30 āļāļĩāļāļķāđāļāđāļ",
"āļĄāļĩāļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļāļŠāļđāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāļāļ§āļāļāļļāļĄāļāļēāļāđāļāđ",
"āļĄāļĩāļāļ§āļēāļĄāļĢāļđāđāļāđāļēāļāđāļāļāđāļāđāļĨāļĒāļĩāļŠāļēāļĢāļŠāļāđāļāļĻāđāļāđāļāļāļĒāđāļēāļāļāļĩ"
],
"possibleSkillAndQualificationsByAI": [
"āļāļēāļĢāļāļąāļāļāļēāļĢ IT",
"āļŪāļēāļĢāđāļāđāļ§āļĢāđ",
"āļāļāļāļāđāđāļ§āļĢāđ",
"āļāļēāļĢāļāļĢāļīāļŦāļēāļĢāļāļąāļāļāļēāļĢāđāļāļĢāļ·āļāļāđāļēāļĒ",
"āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļāļāđāļāļĄāļđāļĨ",
"āļāļēāļĢāļāļĢāļīāļŦāļēāļĢāļĢāļ°āļāļ",
"āļāļēāļĢāļāļąāļāļāļ·āđāļ",
"āļāļēāļĢāļāļąāļāļāļēāļĢāļāļēāļĢāļāļģāļĢāļļāļāļĢāļąāļāļĐāļē",
"āļāļēāļĢāļŠāļģāļĢāļāļāđāļĨāļ°āļāļđāđāļāļ·āļāļāđāļāļĄāļđāļĨ",
"āļāļēāļĢāļāļķāļāļāļāļĢāļĄ",
"āļāļēāļĢāļāļąāļāļāļģāļāļāļāļĢāļ°āļĄāļēāļ",
"āļāļēāļĢāđāļāđāļāļąāļāļŦāļē",
"āļāļ§āļēāļĄāđāļāđāļāļāļđāđāļāļģ",
"āļāļēāļĢāļāļĢāļīāļŦāļēāļĢāļāļĩāļĄ",
"āļāļąāļāļĐāļ°āļāļēāļĢāļŠāļ·āđāļāļŠāļēāļĢ"
]
}
āļāļļāļāļŠāļĄāļāļąāļāļīâ
- āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļ: āļāļķāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŠāļģāļāļąāļāļāļēāļ JD āđāļāđāļ āļāļ·āđāļāļāļģāđāļŦāļāđāļāļāļēāļ āļāļĢāļīāļĐāļąāļ āļŠāļāļēāļāļāļĩāđāļāļąāđāļ āļāļ§āļēāļĄāļĢāļąāļāļāļīāļāļāļāļ āļāļļāļāļŠāļĄāļāļąāļāļī āđāļĨāļ°āļāļąāļāļĐāļ°āļāļĩāđāļāļģāđāļāđāļāļāļĩāđ AI āđāļāļ°āļāļģ
- āļĢāļđāļāđāļāļāļāļĩāđāļĢāļāļāļĢāļąāļ: āļĢāļāļāļĢāļąāļāđāļāļĨāđ PDF, JPG, PNG āđāļĨāļ° JPEG
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Pythonâ
import requests
url = "https://api.iapp.co.th/ocr/jd"
payload = {}
files=[
('file',('sample_jd_2.png',open('sample_jd_2.png','rb'),'application/pdf'))
]
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("sample_jd_2.png"))
let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/ocr/jd",
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/ocr/jd',
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('sample_jd_2.png')),
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Swiftâ
let parameters = [
[
"key": "file",
"src": "sample_jd_2.png",
"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/ocr/jd")!,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","sample_jd_2.png",
File("sample_jd_2.png").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/ocr/jd")
.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","sample_jd_2.png",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("sample_jd_2.png")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/ocr/jd")
.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/ocr/jd'));
request.files.add(await http.MultipartFile.fromPath('file', 'sample_jd_2.png'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
āļĢāļēāļāļēâ
āļāļ·āđāļāļāļĢāļīāļāļēāļĢ AI API | Endpoint | IC āļāđāļāļŦāļāđāļē | On-Premise |
---|---|---|---|
API āļŠāļēāļĢāļāļĢāļāļāļāđāļāļĄāļđāļĨāđāļĨāļ°āđāļĒāļāļāđāļāļĄāļđāļĨāļāļēāļāđāļāļāļŠāļēāļĢāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļ (JD) āļāđāļ§āļĒ AI | iapp_jd_ocr | 1 IC/āļŦāļāđāļē | āļāļīāļāļāđāļāđāļĢāļē |