Skip to main content

🊊 OCR āđ€āļ­āļāļŠāļēāļĢāļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļ—āļģāļ‡āļēāļ™ (CV) āđāļĨāļ°āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāļ›āļĢāļ°āđ€āļĄāļīāļ™āļ„āļļāļ“āļ āļēāļžāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļ”āđ‰āļ§āļĒ AI

1 ICāļ•āđˆāļ­āļŦāļ™āđ‰āļē
v2.0 Active🆕 āļ˜.āļ„. 2025 POST /v3/store/ocr/curriculum-vitae

API āļ™āļĩāđ‰āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ­āļāļŠāļēāļĢ Curriculum Vitae (CV) (PDF, JPG, PNG) āđāļĨāļ°āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡ āļĢāļ§āļĄāļ–āļķāļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļŠāđˆāļ§āļ™āļšāļļāļ„āļ„āļĨ āļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļĻāļķāļāļĐāļē āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļģāļ‡āļēāļ™ āđāļĨāļ°āļ—āļąāļāļĐāļ°āļ•āđˆāļēāļ‡āđ†

āđƒāļŦāļĄāđˆāđƒāļ™ v2.0 - āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™ CV āļ”āđ‰āļ§āļĒ AI

āđ€āļĢāļēāđ„āļ”āđ‰āđ€āļžāļīāđˆāļĄāļŸāļĩāđ€āļˆāļ­āļĢāđŒ āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™ CV āđāļšāļšāļ„āļĢāļšāļ§āļ‡āļˆāļĢāđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāļœāļđāđ‰āļŦāļēāļ‡āļēāļ™āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđ€āļĢāļ‹āļđāđ€āļĄāđˆ:

  • āļ„āļ°āđāļ™āļ™āļĢāļ§āļĄ (0-100) āļžāļĢāđ‰āļ­āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđāļ•āđˆāļĨāļ°āļŠāđˆāļ§āļ™
  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš ATS - āđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļē CV āļ‚āļ­āļ‡āļ„āļļāļ“āļœāđˆāļēāļ™āļĢāļ°āļšāļšāļ„āļąāļ”āļāļĢāļ­āļ‡āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī
  • āļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāļˆāļļāļ”āđāļ‚āđ‡āļ‡āđāļĨāļ°āļˆāļļāļ”āļ­āđˆāļ­āļ™
  • āļ„āļģāđāļ™āļ°āļ™āļģāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ•āļēāļĄāļĨāļģāļ”āļąāļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļ āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡
  • āļ„āļĩāļĒāđŒāđ€āļ§āļīāļĢāđŒāļ”āļ—āļĩāđˆāđāļ™āļ°āļ™āļģ āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ‡āļēāļ™āļ—āļĩāđˆāļ”āļĩāļ‚āļķāđ‰āļ™
  • āđāļ™āļ°āļ™āļģāļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ

āļĨāļ­āļ‡āđƒāļŠāđ‰ Demo​

āļ—āļ”āļĨāļ­āļ‡āđƒāļŠāđ‰ AI Demo

āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļĢāļ°āļšāļšāļŦāļĢāļ·āļ­āļŠāļĢāđ‰āļēāļ‡āļšāļąāļāļŠāļĩāļŸāļĢāļĩāđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰āļ‡āļēāļ™ AI Demo āđāļĨāļ°āļŠāļģāļĢāļ§āļˆ API āļ—āļĩāđˆāļ—āļĢāļ‡āļžāļĨāļąāļ‡āļ‚āļ­āļ‡āđ€āļĢāļē

āļĢāļąāļš 100 āđ€āļ„āļĢāļ”āļīāļ•āļŸāļĢāļĩ (IC) āđ€āļĄāļ·āđˆāļ­āļŠāļĄāļąāļ„āļĢāļŠāļĄāļēāļŠāļīāļ!

āđ‚āļ›āļĢāđ‚āļĄāļŠāļąāļ™āļŦāļĄāļ”āđ€āļ‚āļ• 31 āļ˜āļąāļ™āļ§āļēāļ„āļĄ 2568

Example Images (Click to try)

Example 1

API Endpoints​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ocr/curriculum-vitae
/ocr/cv, /ocr/cv-port
POSTāļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļˆāļēāļ CV1 IC āļ•āđˆāļ­āļŦāļ™āđ‰āļē

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”​

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ CV​

CV Example

Request:​

    curl -X POST https://api.iapp.co.th/ocr/cv
-H "apikey: YOUR_API_KEY"
-F "file=@/path/to/sample_cv_2.jpg"

Response:​

{
"personalInformation": {
"name": "āļ™āļēāļ‡āļŠāļēāļ§āļ­āļļāđ„āļĢāļ§āļĢāļĢāļ“ āđ€āļˆāļĩāļĒāļĄāļšāļļāļāļĻāļĢāļĩ",
"address": "317 āļ–.āļ™āļ„āļĢāļ§āļĢāļĢāļ„āđŒ āđāļ‚āļ§āļ‡āļ§āļąāļ”āđ‚āļŠāļĄāļ™āļąāļŠ āđ€āļ‚āļ•āļ›āđ‰āļ­āļĄāļ›āļĢāļēāļĻāļąāļ•āļĢāļđāļžāđˆāļēāļĒ āļāļ—āļĄ. 10100",
"phoneNumbers": ["082-996-5168"],
"email": "uraiwan91790@gmail.com",
"religion": "āļžāļļāļ—āļ˜",
"nationality": "āđ„āļ—āļĒ",
"age": "43"
},
"education": [
{
"school": "āđ‚āļĢāļ‡āđ€āļĢāļĩāļĒāļ™āļĢāļēāļŠāļ§āļīāļ™āļīāļ• āļĄāļąāļ˜āļĒāļĄ",
"level": "āļĄāļąāļ˜āļĒāļĄāļĻāļķāļāļĐāļēāļ›āļĩāļ—āļĩāđˆ 6",
"year": "2538-2540"
}
],
"workExperience": [
{
"title": "Recruitment officer",
"company": "Apex medical center",
"startDate": "May 2022",
"endDate": "December 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļžāļ™āļąāļāļ‡āļēāļ™āļ•āļģāđāļŦāļ™āđˆāļ‡ consultant, beauty therapist, nurse"]
},
{
"title": "Recruitment officer",
"company": "GMI Market",
"startDate": "April 2022",
"endDate": "June 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļšāļļāļ„āļĨāļēāļāļĢ āļ•āļģāđāļŦāļ™āđˆāļ‡ sale āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāđ€āļ—āļĢāļ”āđ€āļ”āļ­āļĢāđŒ"]
},
{
"title": "Senior recruitment",
"company": "āļšāļĢāļīāļĐāļąāļ— āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ RGH",
"startDate": "January 2022",
"endDate": "March 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļžāļ™āļąāļāļ‡āļēāļ™āļ•āļģāđāļŦāļ™āđˆāļ‡ āļĢāļ›āļ .,āđāļĄāđˆāļšāđ‰āļēāļ™"]
}
],
"skillsAndQualifications": {
"languages": {
"english": "āļžāļđāļ” āđ€āļ‚āļĩāļĒāļ™ āļŠāļ·āđˆāļ­āļŠāļēāļĢ āļ āļēāļĐāļēāļ­āļąāļ‡āļāļĪāļĐāđ„āļ”āđ‰āđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āļ”āļĩ"
},
"computerSkills": ["āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āđ‚āļ›āļĢāđāļāļ™āļĄāļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒ"],
"communicationSkills": []
},
"possibleSkillAndQualificationsByAI": [
"Recruiting",
"Applicant Tracking Systems (ATS)",
"Interviewing",
"Talent Acquisition",
"Onboarding",
"HRIS",
"Performance Management",
"Employee Relations",
"Sales",
"Trading",
"Security",
"Customer Service",
"Teamwork",
"Communication"
],
"additionalInformation": {
"customerServiceSkills": null,
"assessment": null
}
}

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī​

  • āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ CV: āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļˆāļēāļ CV āļĢāļ§āļĄāļ–āļķāļ‡āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļŠāđˆāļ§āļ™āļšāļļāļ„āļ„āļĨ āļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļĻāļķāļāļĐāļē āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļ—āļģāļ‡āļēāļ™ āļ—āļąāļāļĐāļ° āđāļĨāļ°āļ—āļąāļāļĐāļ°āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āđ„āļ›āđ„āļ”āđ‰āļ—āļĩāđˆ AI āđāļ™āļ°āļ™āļģ

  • āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™āļ”āđ‰āļ§āļĒ AI (āđƒāļŦāļĄāđˆ): āđƒāļŦāđ‰āļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒ CV āļ­āļĒāđˆāļēāļ‡āļ„āļĢāļšāļ–āđ‰āļ§āļ™:

    • āļ„āļ°āđāļ™āļ™āļĢāļ§āļĄāđāļĨāļ°āļ„āļ°āđāļ™āļ™āđāļĒāļāļ•āļēāļĄāļŠāđˆāļ§āļ™
    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš ATS (āļĢāļ°āļšāļšāļ„āļąāļ”āļāļĢāļ­āļ‡āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī)
    • āļĢāļ°āļšāļļāļˆāļļāļ”āđāļ‚āđ‡āļ‡āđāļĨāļ°āļˆāļļāļ”āļ­āđˆāļ­āļ™
    • āļ„āļģāđāļ™āļ°āļ™āļģāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ•āļēāļĄāļĨāļģāļ”āļąāļšāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡
    • āļ„āļĩāļĒāđŒāđ€āļ§āļīāļĢāđŒāļ”āļ—āļĩāđˆāđāļ™āļ°āļ™āļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ‡āļēāļ™āļ—āļĩāđˆāļ”āļĩāļ‚āļķāđ‰āļ™
    • āđāļ™āļ°āļ™āļģāļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ
  • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: āļĢāļąāļšāđ„āļŸāļĨāđŒ PDF, JPG, PNG āđāļĨāļ° JPEG

āļœāļĨāļĨāļąāļžāļ˜āđŒāļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™ CV​

API āļˆāļ°āļŠāđˆāļ‡āļāļĨāļąāļšāļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒ evaluation āļžāļĢāđ‰āļ­āļĄāļāļēāļĢāļ§āļīāđ€āļ„āļĢāļēāļ°āļŦāđŒāđ‚āļ”āļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”:

āļŦāļĄāļ§āļ”āļŦāļĄāļđāđˆāļ„āļ°āđāļ™āļ™â€‹

āļŦāļĄāļ§āļ”āļŦāļĄāļđāđˆāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
overallāļ„āļ°āđāļ™āļ™āļ„āļļāļ“āļ āļēāļž CV āđ‚āļ”āļĒāļĢāļ§āļĄ (0-100)
personalInfoāļ„āļ§āļēāļĄāļ„āļĢāļšāļ–āđ‰āļ§āļ™āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ•āļīāļ”āļ•āđˆāļ­
educationāļāļēāļĢāļ™āļģāđ€āļŠāļ™āļ­āļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļĻāļķāļāļĐāļē
workExperienceāļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļžāļĢāđ‰āļ­āļĄāļœāļĨāļ‡āļēāļ™
skillsāļāļēāļĢāļˆāļąāļ”āļĢāļ°āđ€āļšāļĩāļĒāļšāđāļĨāļ°āļ„āļ§āļēāļĄāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļ‚āļ­āļ‡āļ—āļąāļāļĐāļ°

āļŸāļīāļĨāļ”āđŒāļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™â€‹

{
"evaluation": {
"scores": {
"overall": 72,
"personalInfo": { "score": 85, "feedback": "..." },
"education": { "score": 70, "feedback": "..." },
"workExperience": { "score": 65, "feedback": "..." },
"skills": { "score": 75, "feedback": "..." }
},
"experienceLevel": "mid",
"totalYearsOfExperience": 6,
"atsCompatibility": {
"score": 70,
"issues": ["āđ„āļĄāđˆāļĄāļĩāļ„āļĩāļĒāđŒāđ€āļ§āļīāļĢāđŒāļ”āđ€āļ‰āļžāļēāļ°āļ‡āļēāļ™", "..."],
"suggestions": ["āđ€āļžāļīāđˆāļĄāļ„āļĩāļĒāđŒāđ€āļ§āļīāļĢāđŒāļ”āđ€āļ‰āļžāļēāļ°āļ­āļļāļ•āļŠāļēāļŦāļāļĢāļĢāļĄ", "..."]
},
"strengths": ["āļ„āļ§āļēāļĄāļāđ‰āļēāļ§āļŦāļ™āđ‰āļēāđƒāļ™āļ­āļēāļŠāļĩāļžāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™", "..."],
"weaknesses": ["āļ‚āļēāļ”āļœāļĨāļ‡āļēāļ™āļ—āļĩāđˆāļ§āļąāļ”āđ„āļ”āđ‰", "..."],
"missingSections": ["āļŠāļĢāļļāļ›āļ›āļĢāļ°āļ§āļąāļ•āļī", "āđƒāļšāļĢāļąāļšāļĢāļ­āļ‡", "..."],
"improvements": [
{
"section": "workExperience",
"priority": "high",
"issue": "āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ‡āļēāļ™āļ‚āļēāļ”āļœāļĨāļ‡āļēāļ™āļ—āļĩāđˆāļ§āļąāļ”āđ„āļ”āđ‰",
"suggestion": "āđ€āļžāļīāđˆāļĄāļ•āļąāļ§āđ€āļĨāļ‚āđāļĨāļ°āđ€āļ›āļ­āļĢāđŒāđ€āļ‹āđ‡āļ™āļ•āđŒāđ€āļ‰āļžāļēāļ°",
"example": "āļ™āļģāļ—āļĩāļĄ 8 āļ„āļ™ āļšāļĢāļĢāļĨāļļāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļĢāļēāļĒāđ„āļ•āļĢāļĄāļēāļŠ 125%"
}
],
"suggestedKeywords": ["āļāļēāļĢāđ€āļ•āļīāļšāđ‚āļ•āļ‚āļ­āļ‡āļĢāļēāļĒāđ„āļ”āđ‰", "āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ pipeline", "..."],
"industryFitSuggestions": ["āļāļēāļĢāļšāļĢāļīāļŦāļēāļĢāļāļēāļĢāļ‚āļēāļĒ", "āļāļēāļĢāļžāļąāļ’āļ™āļēāļ˜āļļāļĢāļāļīāļˆ", "..."],
"executiveSummary": "CV āļ™āļĩāđ‰āļ™āļģāđ€āļŠāļ™āļ­āļœāļđāđ‰āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļāļĢāļ°āļ”āļąāļšāļāļĨāļēāļ‡..."
}
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”​

Curl​

curl -X POST https://api.iapp.co.th/v3/store/ocr/curriculum-vitae \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"

Python​

import requests

url = "https://api.iapp.co.th/ocr/cv"

payload = {}
files=[
('file',('sample_cv_2.jpg',open('sample_cv_2.jpg','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_cv_2.jpg"))

let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/ocr/cv",
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/cv',
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_cv_2.jpg')),
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


Swift​

let parameters = [
[
"key": "file",
"src": "sample_cv_2.jpg",
"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/cv")!,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_cv_2.jpg",
File("sample_cv_2.jpg").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/ocr/cv")
.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_cv_2.jpg",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("sample_cv_2.jpg")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/ocr/cv")
.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/cv'));
request.files.add(await http.MultipartFile.fromPath('file', 'sample_cv_2.jpg'));
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

āļĢāļēāļ„āļē​

āļŠāļ·āđˆāļ­āļšāļĢāļīāļāļēāļĢ AI APIEndpointIC āļ•āđˆāļ­āļŦāļ™āđ‰āļēOn-Premise
API āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ CV āļ”āđ‰āļ§āļĒ AI āđāļĨāļ°āļ‚āđ‰āļ­āļĄāļđāļĨiapp_cv_ocr1 IC/āļŦāļ™āđ‰āļēāļ•āļīāļ”āļ•āđˆāļ­