Skip to main content

ðŸ‘Ī🔍 Face Recognition API

0.1 - 0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
v1.3.0 āđƒāļŠāđ‰āļ‡āļēāļ™āļ­āļĒāļđāđˆ POST /v3/store/ekyc/face-recognition

āļ āļēāļžāļĢāļ§āļĄâ€‹

iApp Face Recognition API āđ€āļ›āđ‡āļ™āđ‚āļ‹āļĨāļđāļŠāļąāļ™āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāļ„āļĢāļšāļ§āļ‡āļˆāļĢāļ—āļĩāđˆāđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē āļāļēāļĢāļˆāļ”āļˆāļģ āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš āđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļˆāļēāļāđ‚āļĄāđ€āļ”āļĨ Deep Learning āļ—āļĩāđˆāļ—āļąāļ™āļŠāļĄāļąāļĒ API āļ‚āļ­āļ‡āđ€āļĢāļēāđƒāļŦāđ‰āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡āđāļĨāļ°āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§āļŠāļģāļŦāļĢāļąāļšāļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļĢāļ§āļĄāļ–āļķāļ‡āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™ āđāļĨāļ°āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§

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

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

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

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

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

Face Recognition API Demo

Test our face recognition endpoints with real-time results

Endpoint changes based on selected tab

Recognizes the most prominent face in an image and matches it against your company's face database.

Supported: JPG, JPEG, PNG (max 2MB)

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļâ€‹

āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļŦāļĨāļąāļâ€‹

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē (Face Detection): āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āļŦāļĢāļ·āļ­āļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļĢāļđāļ›āļ āļēāļžāļžāļĢāđ‰āļ­āļĄāļžāļīāļāļąāļ”āļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄ
  • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē (Face Recognition): āļĢāļ°āļšāļļāļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļĢāļđāđ‰āļˆāļąāļāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļēāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡āļ‚āļ­āļ‡āļ„āļļāļ“
  • āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē (Face Comparison): āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļēāđ€āļžāļ·āđˆāļ­āļžāļīāļˆāļēāļĢāļ“āļēāļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™āļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Database Management): āđ€āļžāļīāđˆāļĄ āļĨāļš āļ™āļģāđ€āļ‚āđ‰āļē āđāļĨāļ°āļŠāđˆāļ‡āļ­āļ­āļāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē
  • āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļ›āļĢāļąāļšāđāļ•āđˆāļ‡āđ„āļ”āđ‰ (Configurable Thresholds): āļ›āļĢāļąāļšāļ„āļ§āļēāļĄāđ„āļ§āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģ
  • āļĢāļ­āļ‡āļĢāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (Multi-face Support): āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļĄāļĩāđƒāļšāļŦāļ™āđ‰āļēāļŦāļĨāļēāļĒāđƒāļšāļžāļĢāđ‰āļ­āļĄāļāļąāļ™

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„​

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡ (99%+ āļšāļ™āđƒāļšāļŦāļ™āđ‰āļēāļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē)
  • āđ€āļ§āļĨāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĢāļ§āļ”āđ€āļĢāđ‡āļ§ (āļ›āļāļ•āļī 0.3-1.0 āļ§āļīāļ™āļēāļ—āļĩ)
  • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļšāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ (JPEG, JPG, PNG)
  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—
  • āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ•āļēāļĄāļ„āļ°āđāļ™āļ™āļžāļĢāđ‰āļ­āļĄāđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ„āļ”āđ‰
  • RESTful API āļ—āļĩāđˆāļœāļŠāļēāļ™āļĢāļ§āļĄāđ„āļ”āđ‰āļ‡āđˆāļēāļĒ

āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŠāđ‰āļ‡āļēāļ™â€‹

āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™â€‹

  • API Key: āļ‚āļ­āđ„āļ”āđ‰āļˆāļēāļ iApp API Portal
  • āļšāļąāļāļŠāļĩāļšāļĢāļīāļĐāļąāļ— (Company Account): āļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē
  • āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āļĢāļđāļ›āļ āļēāļž:
    • āļĢāļđāļ›āđāļšāļš: JPEG, JPG, PNG
    • āļ‚āļ™āļēāļ”āļŠāļđāļ‡āļŠāļļāļ”: 2MB
    • āļ„āļ§āļēāļĄāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600x400 āļžāļīāļāđ€āļ‹āļĨ
    • āļ‚āļ™āļēāļ”āđƒāļšāļŦāļ™āđ‰āļēāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 112x112 āļžāļīāļāđ€āļ‹āļĨ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™â€‹

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "company=iApp"
āļ§āļīāļ˜āļĩāļĢāļąāļš API Key?

āđ‚āļ›āļĢāļ”āđ„āļ›āļ—āļĩāđˆāļŦāļ™āđ‰āļē āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ API Key āđ€āļžāļ·āđˆāļ­āļ”āļđ API Key āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“ āļŦāļĢāļ·āļ­āļ‚āļ­āđƒāļŦāļĄāđˆ

API Endpoints​

Endpoints āļāļēāļĢāļˆāļ”āļˆāļģ (Recognition Endpoints)​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ekyc/face-recognition/singlePOSTāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ”āđˆāļ™āļ—āļĩāđˆāļŠāļļāļ”0.3 IC

| /v3/store/ekyc/face-recognition/multi | POST | āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļž | 0.3 IC | | /v3/store/ekyc/face-recognition/add | POST | āđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļēāđƒāļŦāļĄāđˆāđ€āļ‚āđ‰āļēāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ | 0.1 IC | | /v3/store/ekyc/face-recognition/remove | POST | āļĨāļšāđƒāļšāļŦāļ™āđ‰āļēāļ­āļ­āļāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ | 0 IC | | /v3/store/ekyc/face-recognition/check | POST | āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ | 0.3 IC | | /v3/store/ekyc/face-recognition/import | POST | āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē (CSV) | 0 IC | | /v3/store/ekyc/face-recognition/export | POST | āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē | 0 IC |

Endpoints āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (Detection Endpoints)​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ekyc/face-detection/singlePOSTāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āļžāļĢāđ‰āļ­āļĄāļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄ0.3 IC
/v3/store/ekyc/face-detection/multiPOSTāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļž0.3 IC

Endpoint āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (Comparison Endpoint)​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ekyc/face-comparisonPOSTāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āđƒāļšāđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļāļąāļ™0.3 IC

Endpoints āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē (Configuration Endpoints)​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ekyc/face-recognition/configPOSTāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš/āļˆāļ”āļˆāļģ0 IC
/v3/store/ekyc/face-recognition/password/changePOSTāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—0 IC

Endpoints āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš (Admin Endpoints)​

EndpointMethodāļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļ„āļē
/v3/store/ekyc/face-recognition/admin/importPOSTāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī0 IC
/v3/store/ekyc/face-recognition/admin/exportPOSTāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī0 IC
/v3/store/ekyc/face-recognition/admin/configPOSTāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ0 IC
/v3/store/ekyc/face-recognition/admin/checkPOSTāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ0 IC
/v3/store/ekyc/face-recognition/admin/password/changePOSTāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™0 IC

API Reference​

Endpoints āļāļēāļĢāļˆāļ”āļˆāļģ (Recognition Endpoints)​

āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§ (Single Face Recognition)​

Endpoint: POST /v3/store/ekyc/face-recognition/single

āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ”āđˆāļ™āļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļžāđāļĨāļ°āļˆāļąāļšāļ„āļđāđˆāļāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"name": "John Doe",
"recognition_score": 0.8523,
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"process_time": 0.4776
}

āļŸāļīāļĨāļ”āđŒāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Fields):

  • name: āļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļĢāļ°āļšāļļ (āļŦāļĢāļ·āļ­ "unknown" āļŦāļēāļāđ„āļĄāđˆāļžāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆ)
  • recognition_score: āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ (0-1)
  • detection_score: āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē (0-1)
  • bbox: āļžāļīāļāļąāļ”āļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄāļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļē
  • process_time: āđ€āļ§āļĨāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ›āđ‡āļ™āļ§āļīāļ™āļēāļ—āļĩ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@face.jpg" \
-F "company=iApp"

āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (Multi-Face Recognition)​

Endpoint: POST /v3/store/ekyc/face-recognition/multi

āļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļž āđ‚āļ”āļĒāļŠāđˆāļ‡āļ„āļ·āļ™āļĢāļēāļĒāļāļēāļĢāļœāļĨāļĨāļąāļžāļ˜āđŒāļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ•āļĢāļ§āļˆāļˆāļąāļšāđ„āļ”āđ‰āđāļ•āđˆāļĨāļ°āđƒāļš

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"faces": [
{
"name": "John Doe",
"recognition_score": 0.8523,
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
}
},
{
"name": "Jane Smith",
"recognition_score": 0.7891,
"detection_score": 0.9995,
"bbox": {
"xmin": 350.12,
"ymin": 180.34,
"xmax": 450.67,
"ymax": 310.23
}
}
],
"process_time": 0.6234
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg" \
-F "company=iApp"

āđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‚āđ‰āļēāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Add Face to Database)​

Endpoint: POST /v3/store/ekyc/face-recognition/add

āđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļēāđƒāļŦāļĄāđˆāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļāļēāļĢāļˆāļ”āļˆāļģāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“ āđ€āļ›āđ‡āļ™āļāļēāļĢāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āļšāļļāļ„āļ„āļĨāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļ”āļˆāļģāđƒāļ™āļ­āļ™āļēāļ„āļ•

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™ (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
nameStringYesāļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"name": "John Doe",
"face_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"detection_score": 0.9998
}

āļŸāļīāļĨāļ”āđŒāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Fields):

  • face_id: āļ•āļąāļ§āļĢāļ°āļšāļļāđ€āļ‰āļžāļēāļ°āļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļžāļīāđˆāļĄ
  • detection_score: āļ„āļ°āđāļ™āļ™āļ„āļļāļ“āļ āļēāļžāļ‚āļ­āļ‡āļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļē
  • name: āļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/add \
-H "apikey: YOUR_API_KEY" \
-F "file=@john_doe.jpg" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"
āļĢāļŦāļąāļŠāļœāđˆāļēāļ™ Demo

āļŠāļģāļŦāļĢāļąāļšāļšāļĢāļīāļĐāļąāļ— Demo "iApp" āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ„āļ·āļ­ "iApp" āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āđ€āļžāļ·āđˆāļ­āļ—āļ”āļŠāļ­āļš API Endpoints āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē

āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ” (Best Practices):

  • āđƒāļŠāđ‰āļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™
  • āļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļĄāļĩāđāļŠāļ‡āļŠāļ§āđˆāļēāļ‡āđ€āļžāļĩāļĒāļ‡āļžāļ­
  • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļĢāļđāļ›āļ āļēāļžāđ€āļšāļĨāļ­āļŦāļĢāļ·āļ­āļ„āļļāļ“āļ āļēāļžāļ•āđˆāļģ
  • āļŦāļ™āļķāđˆāļ‡āđƒāļšāļŦāļ™āđ‰āļēāļ•āđˆāļ­āļĢāļđāļ›āļ āļēāļž
  • āļšāļļāļ„āļ„āļĨāļ„āļ§āļĢāļŦāļąāļ™āļŦāļ™āđ‰āļēāđ€āļ‚āđ‰āļēāļŦāļēāļāļĨāđ‰āļ­āļ‡

āļĨāļšāđƒāļšāļŦāļ™āđ‰āļēāļ­āļ­āļāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Remove Face from Database)​

Endpoint: POST /v3/store/ekyc/face-recognition/remove

āļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļēāļ­āļ­āļāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
nameStringYesāļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļˆāļ°āļĨāļš
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
face_idStringNoID āđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‰āļžāļēāļ°āļ—āļĩāđˆāļˆāļ°āļĨāļš (āļŦāļēāļāļĄāļĩāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "face removed successfully",
"company": "YOUR_COMPANY",
"name": "John Doe",
"removed_count": 1
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

āļžāļĢāđ‰āļ­āļĄ Face ID āđ€āļ‰āļžāļēāļ°:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "face_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-F "password=iApp"

āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē (Check Face Database)​

Endpoint: POST /v3/store/ekyc/face-recognition/check

āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āđāļĨāļ°āđ€āļ™āļ·āđ‰āļ­āļŦāļēāļ‚āļ­āļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“ āļŠāđˆāļ‡āļ„āļ·āļ™āļŠāļ–āļīāļ•āļīāđāļĨāļ°āļŠāđˆāļ‡āļ­āļ­āļāđ„āļŸāļĨāđŒāļĢāļēāļĒāļ‡āļēāļ™āļ•āļēāļĄāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
save_fileStringNoāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ "True" āļŦāļĢāļ·āļ­ "1" āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ‡āļ­āļ­āļāđ„āļŸāļĨāđŒāļĢāļēāļĒāļ‡āļēāļ™

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (āđ€āļĄāļ·āđˆāļ­āđ„āļĄāđˆāļŠāđˆāļ‡āļ­āļ­āļāđ„āļŸāļĨāđŒ):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"total_faces": 145,
"total_persons": 145,
"database_size": "2.3 MB",
"last_updated": "2025-01-15T10:30:00Z"
}

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (āđ€āļĄāļ·āđˆāļ­āļŠāđˆāļ‡āļ­āļ­āļāđ„āļŸāļĨāđŒ):

āļŠāđˆāļ‡āļ„āļ·āļ™āđ„āļŸāļĨāđŒ CSV āļ—āļĩāđˆāļĄāļĩāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

# āļĢāļąāļšāļŠāļ–āļīāļ•āļīāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# āļŠāđˆāļ‡āļ­āļ­āļāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "save_file=True" \
-o database_report.csv

āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē (Import Face Features)​

Endpoint: POST /v3/store/ekyc/face-recognition/import

āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ„āļģāļ™āļ§āļ“āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļēāļˆāļēāļāđ„āļŸāļĨāđŒ CSV āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“ āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļēāļˆāļģāļ™āļ§āļ™āļĄāļēāļāļŦāļĢāļ·āļ­āļāļēāļĢāļĒāđ‰āļēāļĒāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāđ„āļŸāļĨāđŒ CSV āļ—āļĩāđˆāļĄāļĩāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™

āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒ CSV (CSV File Format):

āđ„āļŸāļĨāđŒ CSV āļ„āļ§āļĢāļĄāļĩāđ€āļ§āļāđ€āļ•āļ­āļĢāđŒāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļžāļĢāđ‰āļ­āļĄāļ„āļ­āļĨāļąāļĄāļ™āđŒ: name, face_id, feature_vector (āļ„āđˆāļēāļ—āļĻāļ™āļīāļĒāļĄāļ„āļąāđˆāļ™āļ”āđ‰āļ§āļĒāļˆāļļāļĨāļ āļēāļ„)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"imported_count": 50,
"failed_count": 0,
"total_processed": 50
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/import \
-H "apikey: YOUR_API_KEY" \
-F "file=@face_features.csv" \
-F "company=iApp" \
-F "password=iApp"

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļēāđ„āļĄāđˆāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩ Demo


āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē (Export Face Features)​

Endpoint: POST /v3/store/ekyc/face-recognition/export

āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“āđ„āļ›āļĒāļąāļ‡āđ„āļŸāļĨāđŒ āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļš CSV āđāļĨāļ° Excel

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
type_fileStringYesāļĢāļđāļ›āđāļšāļšāļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ: "csv" āļŦāļĢāļ·āļ­ "excel"

āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš:

āļŠāđˆāļ‡āļ„āļ·āļ™āļāļēāļĢāļ”āļēāļ§āļ™āđŒāđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒāļžāļĢāđ‰āļ­āļĄāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāđˆāļ‡āļ­āļ­āļ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

# āļŠāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ CSV
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=csv" \
-o face_features.csv

# āļŠāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ Excel
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=excel" \
-o face_features.xlsx

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļāđ„āļĄāđˆāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩ Demo


Endpoints āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (Detection Endpoints)​

āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§ (Single Face Detection)​

Endpoint: POST /v3/store/ekyc/face-detection/single

āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ”āđˆāļ™āļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļžāđāļĨāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļžāļīāļāļąāļ”āļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄāđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļāļēāļĢāļˆāļ”āļˆāļģ

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringNoāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"process_time": 0.2134
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg"

āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (Multi-Face Detection)​

Endpoint: POST /v3/store/ekyc/face-detection/multi

āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļžāđāļĨāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļžāļīāļāļąāļ”āļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄāļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđāļ•āđˆāļĨāļ°āđƒāļšāđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļāļēāļĢāļˆāļ”āļˆāļģ

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileYesāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringNoāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"faces": [
{
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
}
},
{
"detection_score": 0.9995,
"bbox": {
"xmin": 350.12,
"ymin": 180.34,
"xmax": 450.67,
"ymax": 310.23
}
}
],
"total_faces": 2,
"process_time": 0.3567
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg"

Endpoint āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (Comparison Endpoint)​

āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āđƒāļš (Compare Two Faces)​

Endpoint: POST /v3/store/ekyc/face-comparison

āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āļĢāļđāļ›āđ€āļžāļ·āđˆāļ­āļžāļīāļˆāļēāļĢāļ“āļēāļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™āļ‚āļ­āļ‡āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āļŠāđˆāļ‡āļ„āļ·āļ™āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
file1FileYesāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāđāļĢāļ (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
file2FileYesāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡ (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringNoāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļˆāļģāđ€āļ›āđ‡āļ™)
min_scoreFloatNoāđ€āļāļ“āļ‘āđŒāļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļ‚āļąāđ‰āļ™āļ•āđˆāļģ (0-1)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "successfully performed",
"status": {
"face1_detected": true,
"face2_detected": true,
"match": true
},
"similarity_score": 0.8734,
"comparison_score": 0.8734,
"face1_bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"face2_bbox": {
"xmin": 180.23,
"ymin": 170.12,
"xmax": 280.56,
"ymax": 295.34
},
"process_time": 0.5423
}

āļŸāļīāļĨāļ”āđŒāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Fields):

  • match: Boolean āļšāđˆāļ‡āļŠāļĩāđ‰āļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāļ•āļĢāļ‡āļāļąāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ (āļ•āļēāļĄāđ€āļāļ“āļ‘āđŒ)
  • similarity_score: āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āđƒāļšāļŦāļ™āđ‰āļē (0-1)
  • status: āļŠāļ–āļēāļ™āļ°āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡
  • face1_bbox, face2_bbox: āļāļĢāļ­āļšāļŠāļĩāđˆāđ€āļŦāļĨāļĩāđˆāļĒāļĄāļ‚āļ­āļ‡āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ•āļĢāļ§āļˆāļˆāļąāļšāđ„āļ”āđ‰

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@person1.jpg" \
-F "file2=@person2.jpg"

āļžāļĢāđ‰āļ­āļĄāđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļ‚āļąāđ‰āļ™āļ•āđˆāļģ:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@person1.jpg" \
-F "file2=@person2.jpg" \
-F "min_score=0.8"

Endpoints āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē (Configuration Endpoints)​

āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ (Configure Thresholds)​

Endpoint: POST /v3/store/ekyc/face-recognition/config

āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģāļŠāļģāļŦāļĢāļąāļšāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“ āđ€āļāļ“āļ‘āđŒāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļˆāļ°āļāļģāļŦāļ™āļ”āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļ‚āļąāđ‰āļ™āļ•āđˆāļģāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļģāđ€āļĢāđ‡āļˆ

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
detectionFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
comparisonFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
recognitionFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ (0-100 āļŦāļĢāļ·āļ­ 0-1)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "the minimum score of detection, comparison and recognition has been successfully configured.",
"company": "YOUR_COMPANY",
"detection_score": 0.75,
"comparison_score": 0.80,
"recognition_score": 0.85
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

# āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļ—āļąāđ‰āļ‡āļŦāļĄāļ”
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "detection=75" \
-F "comparison=80" \
-F "recognition=85"

# āļĢāļąāļšāđ€āļāļ“āļ‘āđŒāļ›āļąāļˆāļˆāļļāļšāļąāļ™ (āļĨāļ°āđ€āļ§āđ‰āļ™āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļ°āđāļ™āļ™)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "recognition=90"

āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļāļģāļŦāļ™āļ”āđ€āļāļ“āļ‘āđŒ (Threshold Guidelines):

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (Detection) (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ ~0.75): āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļ‚āļąāđ‰āļ™āļ•āđˆāļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē

    • āļ•āđˆāļģāļĨāļ‡: āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ„āļ”āđ‰āļĄāļēāļāļ‚āļķāđ‰āļ™ (āļ­āļēāļˆāļĄāļĩāļœāļĨāļšāļ§āļāļĨāļ§āļ‡)
    • āļŠāļđāļ‡āļ‚āļķāđ‰āļ™: āļ•āļĢāļ§āļˆāļˆāļąāļšāđ€āļ‰āļžāļēāļ°āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™ (āļ­āļēāļˆāļžāļĨāļēāļ”āļšāļēāļ‡āđƒāļšāļŦāļ™āđ‰āļē)
  • āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (Comparison) (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ ~0.80): āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļ‚āļąāđ‰āļ™āļ•āđˆāļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē

    • āļ•āđˆāļģāļĨāļ‡: āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ—āļĩāđˆāļœāđˆāļ­āļ™āļ›āļĢāļ™āļĄāļēāļāļ‚āļķāđ‰āļ™ (āļ­āļēāļˆāļˆāļąāļšāļ„āļđāđˆāļāļąāļšāļšāļļāļ„āļ„āļĨāļ­āļ·āđˆāļ™)
    • āļŠāļđāļ‡āļ‚āļķāđ‰āļ™: āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļĄāļēāļāļ‚āļķāđ‰āļ™ (āļ­āļēāļˆāļ›āļāļīāđ€āļŠāļ˜āļšāļļāļ„āļ„āļĨāđ€āļ”āļĩāļĒāļ§āļāļąāļ™)
  • āļāļēāļĢāļˆāļ”āļˆāļģ (Recognition) (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ ~0.85): āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļ‚āļąāđ‰āļ™āļ•āđˆāļģāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āļšāļļāļ„āļ„āļĨ

    • āļ•āđˆāļģāļĨāļ‡: āļāļēāļĢāļˆāļ”āļˆāļģāļ—āļĩāđˆāļ­āļ™āļļāļāļēāļ•āļĄāļēāļāļ‚āļķāđ‰āļ™ (āļ­āļēāļˆāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āļœāļīāļ”āļžāļĨāļēāļ”)
    • āļŠāļđāļ‡āļ‚āļķāđ‰āļ™: āļāļēāļĢāļˆāļ”āļˆāļģāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļĄāļēāļāļ‚āļķāđ‰āļ™ (āļ­āļēāļˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āļˆāļģāđ„āļ”āđ‰)

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ„āļĄāđˆāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩ Demo


āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™ (Change Password)​

Endpoint: POST /v3/store/ekyc/face-recognition/password/change

āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ‚āļ­āļ‡āļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™ API

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āļąāļ§āļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
old_passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™
new_passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđƒāļŦāļĄāđˆ (āļ•āđ‰āļ­āļ‡āđāļ•āļāļ•āđˆāļēāļ‡)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (Response Format):

{
"message": "Setting new password completed."
}

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/password/change \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "old_password=current_password" \
-F "new_password=new_secure_password"

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđ„āļĄāđˆāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩ Demo


Endpoints āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš (Admin Endpoints)​

Endpoints āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļŠāļīāļ—āļ˜āļīāđŒāļ‚āļ­āļ‡āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļžāļīāđ€āļĻāļĐāđāļĨāļ°āđ„āļĄāđˆāļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰āļ—āļąāđˆāļ§āđ„āļ›

āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī (Admin: Import Features)​

Endpoint: POST /v3/store/ekyc/face-recognition/admin/import

āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‚āđ‰āļēāļŠāļđāđˆāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Demo (āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ "admin"
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
fileFileYesāđ„āļŸāļĨāđŒ CSV āļžāļĢāđ‰āļ­āļĄāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļē

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/import \
-H "apikey: YOUR_API_KEY" \
-F "company=admin" \
-F "password=admin_password" \
-F "file=@features.csv"

āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī (Admin: Export Features)​

Endpoint: POST /v3/store/ekyc/face-recognition/admin/export

āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ Demo āļŦāļĢāļ·āļ­āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāļŠāļģāļĢāļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYesāļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ "admin"
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
type_fileStringYesāļĢāļđāļ›āđāļšāļšāļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ: "csv", "excel", āļŦāļĢāļ·āļ­ "backup"

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/export \
-H "apikey: YOUR_API_KEY" \
-F "company=admin" \
-F "password=admin_password" \
-F "type_file=backup" \
-o backup.csv

āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ (Admin: Configure Thresholds)​

Endpoint: POST /v3/store/ekyc/face-recognition/admin/config

āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļŦāļĢāļ·āļ­āļšāļąāļāļŠāļĩ Demo (āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYes"admin" āļŦāļĢāļ·āļ­ "demo"
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
detectionFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
comparisonFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
recognitionFloatNoāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ (0-100 āļŦāļĢāļ·āļ­ 0-1)

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/config \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "password=admin_password" \
-F "detection=70" \
-F "recognition=80"

āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Admin: Check Database)​

Endpoint: POST /v3/store/ekyc/face-recognition/admin/check

āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ–āļēāļ™āļ°āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļŦāļĢāļ·āļ­ Demo (āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYes"admin" āļŦāļĢāļ·āļ­ "demo"
passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
save_fileStringNoāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ "True" āļŦāļĢāļ·āļ­ "1" āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ‡āļ­āļ­āļāļĢāļēāļĒāļ‡āļēāļ™

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/check \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "password=admin_password"

āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš: āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™ (Admin: Change Password)​

Endpoint: POST /v3/store/ekyc/face-recognition/admin/password/change

āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļŦāļĢāļ·āļ­ Demo (āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ„āļģāļ‚āļ­ (Request Parameters):

ParameterTypeRequiredāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringYes"admin" āļŦāļĢāļ·āļ­ "demo"
old_passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļ›āļąāļˆāļˆāļļāļšāļąāļ™
new_passwordStringYesāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđƒāļŦāļĄāđˆ (āļ•āđ‰āļ­āļ‡āđāļ•āļāļ•āđˆāļēāļ‡)

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/password/change \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "old_password=current_admin_password" \
-F "new_password=new_admin_password"

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” (Error Codes)​

API āđƒāļŠāđ‰āļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ° HTTP āļĄāļēāļ•āļĢāļāļēāļ™āđāļĨāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ‚āļ”āļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”

āļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ° HTTP (HTTP Status Codes)​

Status Codeāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
200āļŠāļģāđ€āļĢāđ‡āļˆ
404Endpoint āđ„āļĄāđˆāļžāļš
405āđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āļ§āļīāļ˜āļĩāļāļēāļĢ (āđƒāļŠāđ‰ POST)
413āđ€āļ­āļ™āļ—āļīāļ•āļĩāļ„āļģāļ‚āļ­āđƒāļŦāļāđˆāđ€āļāļīāļ™āđ„āļ› (āđ„āļŸāļĨāđŒ > 2MB)
415āļ›āļĢāļ°āđ€āļ āļ—āļŠāļ·āđˆāļ­āđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš (āđƒāļŠāđ‰ JPEG, JPG, PNG)
420āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ‚āļēāļ”āļŦāļēāļĒāđ„āļ›
421āļ„āđˆāļēāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
422āļĢāļđāļ›āđāļšāļšāļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
423āļ•āļĢāļ§āļˆāđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļĢāļđāļ›āļ āļēāļž
424āļ•āļĢāļ§āļˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāļŦāļĨāļēāļĒāđƒāļš (āđƒāļŠāđ‰ endpoint /multi)
425āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđƒāļŦāļĄāđˆāđ€āļŦāļĄāļ·āļ­āļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđ€āļ”āļīāļĄ
426āļ•āđ‰āļ­āļ‡āļĄāļĩāļŠāļīāļ—āļ˜āļīāđŒāļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
427āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āļŠāļģāļŦāļĢāļąāļšāļšāļąāļāļŠāļĩ Demo
428āļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļĨāđ‰āļĄāđ€āļŦāļĨāļ§
429āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļēāļĨāđ‰āļĄāđ€āļŦāļĨāļ§

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” (Error Response Format)​

{
"message": "Error description",
"error_code": 421,
"parameter": "company"
}

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļąāđˆāļ§āđ„āļ› (Common Errors)​

420 - āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļ‚āļēāļ”āļŦāļēāļĒāđ„āļ› (Missing Required Parameter)

{
"message": "Missing required parameter: company",
"error_code": 420,
"parameter": "company"
}

421 - āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡ (Invalid Parameter)

{
"message": "Invalid value for parameter: password",
"error_code": 421,
"parameter": "password"
}

423 - āļ•āļĢāļ§āļˆāđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļē (Face Not Detected)

{
"message": "No face detected in the image",
"error_code": 423
}

424 - āļ•āļĢāļ§āļˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāļŦāļĨāļēāļĒāđƒāļš (Multiple Faces Detected)

{
"message": "Multiple faces detected. Please use /recog/multi endpoint",
"error_code": 424
}

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

Python​

import requests

def recognize_face(image_path, api_key, company):
"""Recognize face in image"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-recognition/single"

files = {
'file': open(image_path, 'rb')
}
data = {
'company': company
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, data=data, files=files)
return response.json()

def add_face_to_database(image_path, api_key, company, name, password):
"""Add new face to database"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-recognition/add"

files = {
'file': open(image_path, 'rb')
}
data = {
'company': company,
'name': name,
'password': password
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, data=data, files=files)
return response.json()

def compare_faces(image1_path, image2_path, api_key):
"""Compare two faces"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-comparison"

files = {
'file1': open(image1_path, 'rb'),
'file2': open(image2_path, 'rb')
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, files=files)
return response.json()

# Usage examples
if __name__ == "__main__":
API_KEY = "your_api_key"
COMPANY = "your_company"

# Recognize face
result = recognize_face("photo.jpg", API_KEY, COMPANY)
print(f"Recognized: {result['name']}")
print(f"Confidence: {result['recognition_score']:.2%}")

# Add face to database
result = add_face_to_database(
"john_doe.jpg",
API_KEY,
COMPANY,
"John Doe",
"your_password"
)
print(f"Added: {result['name']}")

# Compare two faces
result = compare_faces("face1.jpg", "face2.jpg", API_KEY)
print(f"Match: {result['status']['match']}")
print(f"Similarity: {result['similarity_score']:.2%}")

JavaScript (Node.js)​

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

async function recognizeFace(imagePath, apiKey, company) {
const formData = new FormData();
formData.append('file', fs.createReadStream(imagePath));
formData.append('company', company);

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-recognition/single',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

async function addFaceToDatabase(imagePath, apiKey, company, name, password) {
const formData = new FormData();
formData.append('file', fs.createReadStream(imagePath));
formData.append('company', company);
formData.append('name', name);
formData.append('password', password);

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-recognition/add',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

async function compareFaces(image1Path, image2Path, apiKey) {
const formData = new FormData();
formData.append('file1', fs.createReadStream(image1Path));
formData.append('file2', fs.createReadStream(image2Path));

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-comparison',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

// Usage examples
(async () => {
const API_KEY = 'your_api_key';
const COMPANY = 'your_company';

try {
// Recognize face
const result = await recognizeFace('photo.jpg', API_KEY, COMPANY);
console.log('Recognized:', result.name);
console.log('Confidence:', result.recognition_score);

// Add face to database
const addResult = await addFaceToDatabase(
'john_doe.jpg',
API_KEY,
COMPANY,
'John Doe',
'your_password'
);
console.log('Added:', addResult.name);

// Compare two faces
const compareResult = await compareFaces('face1.jpg', 'face2.jpg', API_KEY);
console.log('Match:', compareResult.status.match);
console.log('Similarity:', compareResult.similarity_score);
} catch (error) {
console.error('Error:', error);
}
})();

JavaScript (Browser)​

// Face Recognition Function
async function recognizeFace(fileInput, apiKey, company) {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('company', company);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-recognition/single', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// Add Face to Database
async function addFaceToDatabase(fileInput, apiKey, company, name, password) {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('company', company);
formData.append('name', name);
formData.append('password', password);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-recognition/add', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// Compare Two Faces
async function compareFaces(fileInput1, fileInput2, apiKey) {
const formData = new FormData();
formData.append('file1', fileInput1.files[0]);
formData.append('file2', fileInput2.files[0]);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-comparison', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// HTML Example
/*
<input type="file" id="faceImage" accept="image/*">
<input type="text" id="company" placeholder="Company">
<button onclick="handleRecognize()">Recognize Face</button>

<script>
async function handleRecognize() {
const fileInput = document.getElementById('faceImage');
const company = document.getElementById('company').value;
const apiKey = 'your_api_key';

const result = await recognizeFace(fileInput, apiKey, company);
console.log('Result:', result);
alert(`Recognized: ${result.name}\nConfidence: ${result.recognition_score}`);
}
</script>
*/

PHP​

<?php

class FaceRecognitionAPI {
private $apiKey;
private $baseUrl = 'https://api.iapp.co.th';

public function __construct($apiKey) {
$this->apiKey = $apiKey;
}

public function recognizeFace($imagePath, $company) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-recognition/single',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath),
'company' => $company
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function addFaceToDatabase($imagePath, $company, $name, $password) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-recognition/add',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath),
'company' => $company,
'name' => $name,
'password' => $password
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function compareFaces($image1Path, $image2Path) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-comparison',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file1' => new CURLFile($image1Path),
'file2' => new CURLFile($image2Path)
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function detectFaces($imagePath, $multiplefaces = false) {
$endpoint = $multiplefaces ? '/v3/store/ekyc/face-detection/multi' : '/v3/store/ekyc/face-detection/single';
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath)
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}
}

// Usage example
$api = new FaceRecognitionAPI('your_api_key');

try {
// Recognize face
$result = $api->recognizeFace('photo.jpg', 'your_company');
echo "Recognized: " . $result['name'] . "\n";
echo "Confidence: " . ($result['recognition_score'] * 100) . "%\n";

// Add face to database
$result = $api->addFaceToDatabase('john_doe.jpg', 'your_company', 'John Doe', 'your_password');
echo "Added: " . $result['name'] . "\n";

// Compare two faces
$result = $api->compareFaces('face1.jpg', 'face2.jpg');
echo "Match: " . ($result['status']['match'] ? 'Yes' : 'No') . "\n";
echo "Similarity: " . ($result['similarity_score'] * 100) . "%\n";

// Detect faces
$result = $api->detectFaces('group_photo.jpg', true);
echo "Total faces detected: " . $result['total_faces'] . "\n";

} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ cURL (cURL Examples)​

# āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§ (Single Face Recognition)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "company=YOUR_COMPANY"

# āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (Multi-Face Recognition)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg" \
-F "company=YOUR_COMPANY"

# āđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‚āđ‰āļēāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Add Face to Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/add \
-H "apikey: YOUR_API_KEY" \
-F "file=@john_doe.jpg" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

# āļĨāļšāđƒāļšāļŦāļ™āđ‰āļēāļ­āļ­āļāļˆāļēāļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Remove Face from Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

# āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āđƒāļš (Compare Two Faces)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@face1.jpg" \
-F "file2=@face2.jpg" \
-F "min_score=0.8"

# āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§ (Detect Single Face)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg"

# āļ•āļĢāļ§āļˆāļˆāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē (Detect Multiple Faces)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg"

# āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ (Configure Thresholds)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "detection=75" \
-F "recognition=85"

# āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Check Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# āļŠāđˆāļ‡āļ­āļ­āļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (CSV) (Export Database (CSV))
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=csv" \
-o face_database.csv

# āļŠāđˆāļ‡āļ­āļ­āļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Excel) (Export Database (Excel))
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=excel" \
-o face_database.xlsx

āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ” (Best Practices)​

āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļž (Image Quality Guidelines)​

āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”:

  1. āļ„āļ§āļēāļĄāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļĢāļđāļ›āļ āļēāļž (Image Resolution)

    • āļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600x400 āļžāļīāļāđ€āļ‹āļĨ
    • āđāļ™āļ°āļ™āļģ: 1024x768 āļžāļīāļāđ€āļ‹āļĨ āļŦāļĢāļ·āļ­āļŠāļđāļ‡āļāļ§āđˆāļē
    • āđƒāļšāļŦāļ™āđ‰āļēāļ„āļ§āļĢāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒ 15-20% āļ‚āļ­āļ‡āļĢāļđāļ›āļ āļēāļž
  2. āļŠāļ āļēāļžāđāļŠāļ‡ (Lighting Conditions)

    • āđƒāļŠāđ‰āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļŠāļ§āđˆāļēāļ‡āđāļĨāļ°āļĄāļĩāđāļŠāļ‡āļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­
    • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āđ€āļ‡āļēāļˆāļąāļ”āļŦāļĢāļ·āļ­āđāļŠāļ‡āļĒāđ‰āļ­āļ™
    • āđāļŠāļ‡āļ˜āļĢāļĢāļĄāļŠāļēāļ•āļīāļŦāļĢāļ·āļ­āđāļŠāļ‡āļŠāļĩāļ‚āļēāļ§āļĄāļēāļ•āļĢāļāļēāļ™āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”
    • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļŠāļ āļēāļžāđāļŠāļ‡āļ—āļĩāđˆāļĢāļļāļ™āđāļĢāļ‡
  3. āļ•āļģāđāļŦāļ™āđˆāļ‡āđƒāļšāļŦāļ™āđ‰āļē (Face Position)

    • āđāļ™āļ°āļ™āļģāļĄāļļāļĄāļĄāļ­āļ‡āļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē (Âą15 āļ­āļ‡āļĻāļē)
    • āļ„āļ§āļĢāđ€āļŦāđ‡āļ™āļ”āļ§āļ‡āļ•āļēāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ‚āđ‰āļēāļ‡
    • āđƒāļšāļŦāļ™āđ‰āļēāļ„āļ§āļĢāļ•āļąāđ‰āļ‡āļ•āļĢāļ‡
    • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļĄāļļāļĄāđ€āļ­āļĩāļĒāļ‡āļŦāļĢāļ·āļ­āļŦāļĄāļļāļ™āļŠāļļāļ”āļ‚āļąāđ‰āļ§
  4. āļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļž (Image Quality)

    • āđƒāļŠāđ‰āļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļ„āļĄāļŠāļąāļ”
    • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļ āļēāļžāđ€āļšāļĨāļ­āļˆāļēāļāļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āđ„āļŦāļ§
    • āļĨāļ”āļŠāļīāđˆāļ‡āđāļ›āļĨāļāļ›āļĨāļ­āļĄāļˆāļēāļāļāļēāļĢāļšāļĩāļšāļ­āļąāļ”āđƒāļŦāđ‰āđ€āļŦāļĨāļ·āļ­āļ™āđ‰āļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”
    • āļŦāđ‰āļēāļĄāđƒāļŠāđ‰āļŸāļīāļĨāđ€āļ•āļ­āļĢāđŒāļŦāļĢāļ·āļ­āļāļēāļĢāđāļāđ‰āđ„āļ‚āļŦāļ™āļąāļāđ†
  5. āļāļēāļĢāļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāđƒāļšāļŦāļ™āđ‰āļē (Face Coverage)

    • āļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āđāļ§āđˆāļ™āļāļąāļ™āđāļ”āļ” āļŦāļ™āđ‰āļēāļāļēāļ āļŦāļĢāļ·āļ­āļŠāļīāđˆāļ‡āļāļĩāļ”āļ‚āļ§āļēāļ‡
    • āļœāļĄāđ„āļĄāđˆāļ„āļ§āļĢāļšāļ”āļšāļąāļ‡āļ”āļ§āļ‡āļ•āļē
    • āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ›āļĢāļ°āļ”āļąāļšāļšāļ™āđƒāļšāļŦāļ™āđ‰āļēāđƒāļŦāđ‰āļ™āđ‰āļ­āļĒāļ—āļĩāđˆāļŠāļļāļ”
    • āļĄāļ­āļ‡āđ€āļŦāđ‡āļ™āļĨāļąāļāļĐāļ“āļ°āđƒāļšāļŦāļ™āđ‰āļēāđ„āļ”āđ‰āļŠāļąāļ”āđ€āļˆāļ™

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Database Management)​

  1. āļāļēāļĢāđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļē (Adding Faces)

    • āđƒāļŠāđ‰āļĢāļđāļ›āļ āļēāļžāļŦāļĨāļēāļĒāļĢāļđāļ›āļ•āđˆāļ­āļšāļļāļ„āļ„āļĨ (āđāļ™āļ°āļ™āļģ 3-5 āļĢāļđāļ›) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļ—āļĩāđˆāļ”āļĩāļ‚āļķāđ‰āļ™
    • āļĢāļ§āļĄāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ (āļāļēāļĢāđāļŠāļ”āļ‡āļ­āļ­āļāļ•āđˆāļēāļ‡āļāļąāļ™, āđāļŠāļ‡āļ•āđˆāļēāļ‡āļāļąāļ™)
    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāđ‰āđāļ™āđˆāđƒāļˆāļ§āđˆāļēāļĢāļđāļ›āļ āļēāļžāļ—āļĩāđˆāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āļĄāļĩāļ„āļļāļ“āļ āļēāļžāļŠāļđāļ‡
    • āđƒāļŠāđ‰āļŠāļ·āđˆāļ­āļ—āļĩāđˆāļŠāļ·āđˆāļ­āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāđāļĨāļ°āđ„āļĄāđˆāļ‹āđ‰āļģāļāļąāļ™
  2. āļāļēāļĢāļšāļģāļĢāļļāļ‡āļĢāļąāļāļĐāļēāļ›āļĢāļ°āļˆāļģ (Regular Maintenance)

    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āļĨāđ‰āļēāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ
    • āļĨāļšāļĢāļēāļĒāļāļēāļĢāļ—āļĩāđˆāļĨāđ‰āļēāļŠāļĄāļąāļĒāļŦāļĢāļ·āļ­āļ‹āđ‰āļģāļ‹āđ‰āļ­āļ™
    • āļŠāļģāļĢāļ­āļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģāđ‚āļ”āļĒāđƒāļŠāđ‰āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ
    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ™āļēāļ”āđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ‚āļ­āļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
  3. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ (Security)

    • āđƒāļŠāđ‰āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ—āļĩāđˆāđāļ‚āđ‡āļ‡āđāļāļĢāđˆāļ‡
    • āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ
    • āļˆāļģāļāļąāļ”āļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™
    • āļĢāļąāļāļĐāļē API keys āđƒāļŦāđ‰āļ›āļĨāļ­āļ”āļ āļąāļĒ

āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Performance Optimization)​

  1. āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļĢāļđāļ›āļ āļēāļžāļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē (Image Preprocessing)

    • āļ›āļĢāļąāļšāļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļžāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļāđˆāļ­āļ™āļ­āļąāļ›āđ‚āļŦāļĨāļ”
    • āļšāļĩāļšāļ­āļąāļ”āļĢāļđāļ›āļ āļēāļžāđ‚āļ”āļĒāđ„āļĄāđˆāļŠāļđāļāđ€āļŠāļĩāļĒāļ„āļļāļ“āļ āļēāļž
    • āļ„āļĢāļ­āļšāļ•āļąāļ”āđ€āļžāļ·āđˆāļ­āđ€āļ™āđ‰āļ™āļšāļĢāļīāđ€āļ§āļ“āđƒāļšāļŦāļ™āđ‰āļē
    • āđāļ›āļĨāļ‡āđ€āļ›āđ‡āļ™āļĢāļđāļ›āđāļšāļš RGB
  2. āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđāļšāļšāļāļĨāļļāđˆāļĄ (Batch Operations)

    • āđƒāļŠāđ‰āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļē/āļŠāđˆāļ‡āļ­āļ­āļāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļˆāļģāļ™āļ§āļ™āļĄāļēāļ
    • āđƒāļŠāđ‰āļĢāļ°āļšāļšāļāļēāļĢāļĨāļ­āļ‡āđƒāļŦāļĄāđˆ (retry logic) āļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ‚āļ­āļ—āļĩāđˆāļĨāđ‰āļĄāđ€āļŦāļĨāļ§
    • āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāļŦāļĄāļ”āđ€āļ§āļĨāļē (timeouts) āļ­āļĒāđˆāļēāļ‡āđ€āļŦāļĄāļēāļ°āļŠāļĄ
    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļąāļ•āļĢāļēāļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ API (rate limits)
  3. āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” (Error Handling)

    • āđƒāļŠāđ‰āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ
    • āļšāļąāļ™āļ—āļķāļāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ”āļĩāļšāļąāļ
    • āđāļˆāđ‰āļ‡āđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĢāļēāļšāđ€āļĄāļ·āđˆāļ­āđ€āļāļīāļ”āļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§
    • āļĨāļ­āļ‡āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ (transient errors)

āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ (Threshold Configuration)​

  1. āđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (Detection Threshold)

    • āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ (0.75)
    • āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āļŦāļēāļāļĄāļĩāļœāļĨāļšāļ§āļāļĨāļ§āļ‡āļĄāļēāļāđ€āļāļīāļ™āđ„āļ›
    • āļĨāļ”āļĨāļ‡āļŦāļēāļāļžāļĨāļēāļ”āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
    • āļ—āļ”āļŠāļ­āļšāļāļąāļšāļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļžāļ—āļąāđˆāļ§āđ„āļ›āļ‚āļ­āļ‡āļ„āļļāļ“
  2. āđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ (Recognition Threshold)

    • āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ”āđ‰āļ§āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ (0.85)
    • āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™ (āļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļ‚āļķāđ‰āļ™)
    • āļĨāļ”āļĨāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ—āļĩāđˆāļœāđˆāļ­āļ™āļ›āļĢāļ™āļĄāļēāļāļ‚āļķāđ‰āļ™
    • āļŠāļĢāđ‰āļēāļ‡āļŠāļĄāļ”āļļāļĨāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļœāļīāļ”āļžāļĨāļēāļ” (false accepts) āđāļĨāļ°āļāļēāļĢāļ›āļāļīāđ€āļŠāļ˜āļœāļīāļ”āļžāļĨāļēāļ” (false rejects)
  3. āđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (Comparison Threshold)

    • āđƒāļŠāđ‰āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™ (0.80-0.90) āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™
    • āđƒāļŠāđ‰āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļ•āđˆāļģāļĨāļ‡ (0.70-0.80) āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™
    • āļ—āļ”āļŠāļ­āļšāļ”āđ‰āļ§āļĒāļ„āļđāđˆāļ—āļĩāđˆāļ•āļĢāļ‡āļāļąāļ™/āđ„āļĄāđˆāļ•āļĢāļ‡āļāļąāļ™āļ—āļĩāđˆāļ—āļĢāļēāļš
    • āļ›āļĢāļąāļšāļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ‚āļ­āļ‡āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™

āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ (Use Cases)​

1. āļĢāļ°āļšāļšāļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđ€āļ‚āđ‰āļēāļ­āļ­āļ (Access Control Systems)​

āđƒāļŠāđ‰āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļžāļ·āđˆāļ­āļ„āļ§āļšāļ„āļļāļĄāļāļēāļĢāđ€āļ‚āđ‰āļēāļ­āļ­āļāļ—āļēāļ‡āļāļēāļĒāļ āļēāļžāļŦāļĢāļ·āļ­āļ”āļīāļˆāļīāļ—āļąāļĨ:

  • āļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄāđ€āļ§āļĨāļēāđāļĨāļ°āļžāļ™āļąāļāļ‡āļēāļ™āđ€āļ‚āđ‰āļē-āļ­āļ­āļ
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ­āļēāļ„āļēāļĢ
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āđƒāļ™āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ
  • āļĢāļ°āļšāļšāļˆāļąāļ”āļāļēāļĢāļœāļđāđ‰āļĄāļēāđ€āļĒāļ·āļ­āļ™

āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰:

  1. āļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āđƒāļšāļŦāļ™āđ‰āļēāļžāļ™āļąāļāļ‡āļēāļ™āđ‚āļ”āļĒāđƒāļŠāđ‰ /recog/add
  2. āđƒāļŠāđ‰ /recog/single āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļ”āļˆāļģāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāļ—āļĩāđˆāļ—āļēāļ‡āđ€āļ‚āđ‰āļē
  3. āļāļģāļŦāļ™āļ”āđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģāļŠāļđāļ‡ (0.90+) āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ
  4. āļšāļąāļ™āļ—āļķāļāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļāļēāļĢāđ€āļ‚āđ‰āļēāļ­āļ­āļāļžāļĢāđ‰āļ­āļĄāđ€āļ§āļĨāļē

2. āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™ (Identity Verification)​

āļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļœāļđāđ‰āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļĢāļ°āļšāļ§āļ™āļāļēāļĢ KYC (Know Your Customer):

  • āļāļēāļĢāđ€āļ›āļīāļ”āļšāļąāļāļŠāļĩāļšāļĢāļīāļāļēāļĢāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļšāļĢāļīāļāļēāļĢāļ āļēāļ„āļĢāļąāļ
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ­āļēāļĒāļļ
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđ€āļ­āļāļŠāļēāļĢ (āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļĢāļđāļ›āļ–āđˆāļēāļĒāļšāļąāļ•āļĢāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļāļąāļšāđ€āļ‹āļĨāļŸāļĩāđˆ)

āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰:

  1. āļ”āļķāļ‡āđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļāđ€āļ­āļāļŠāļēāļĢāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§
  2. āļ–āđˆāļēāļĒāđ€āļ‹āļĨāļŸāļĩāđˆāļŠāļ”
  3. āđƒāļŠāđ‰ endpoint /compare āđ€āļžāļ·āđˆāļ­āļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē
  4. āļ•āļąāđ‰āļ‡āđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ•āļēāļĄāļĢāļ°āļ”āļąāļšāļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āļ—āļĩāđˆāļĒāļ­āļĄāļĢāļąāļšāđ„āļ”āđ‰
  5. āļˆāļąāļ”āđ€āļāđ‡āļšāļœāļĨāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš

3. āļāļēāļĢāļˆāļąāļ”āļĢāļ°āđ€āļšāļĩāļĒāļšāļĢāļđāļ›āļ āļēāļž (Photo Organization)​

āļˆāļąāļ”āļĢāļ°āđ€āļšāļĩāļĒāļšāđāļĨāļ°āļ•āļīāļ”āđāļ—āđ‡āļāļĢāļđāļ›āļ āļēāļžāđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļ•āļēāļĄāđƒāļšāļŦāļ™āđ‰āļē:

  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ„āļĨāļąāļ‡āļĢāļđāļ›āļ āļēāļžāļŠāđˆāļ§āļ™āļ•āļąāļ§
  • āļāļēāļĢāļˆāļąāļ”āļŦāļĄāļ§āļ”āļŦāļĄāļđāđˆāļĢāļđāļ›āļ āļēāļžāļ‡āļēāļ™āļ­āļĩāđ€āļ§āļ™āļ•āđŒ
  • āļ­āļąāļĨāļšāļąāđ‰āļĄāļĢāļđāļ›āļ„āļĢāļ­āļšāļ„āļĢāļąāļ§
  • āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ‚āļ‹āđ€āļŠāļĩāļĒāļĨāļĄāļĩāđ€āļ”āļĩāļĒ

āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰:

  1. āđƒāļŠāđ‰ /detect/multi āđ€āļžāļ·āđˆāļ­āļ„āđ‰āļ™āļŦāļēāđƒāļšāļŦāļ™āđ‰āļēāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļ™āļĢāļđāļ›āļ āļēāļž
  2. āđƒāļŠāđ‰ /recog/multi āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļĢāļđāđ‰āļˆāļąāļ
  3. āļˆāļąāļ”āļāļĨāļļāđˆāļĄāļĢāļđāļ›āļ āļēāļžāļ•āļēāļĄāļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļ•āļĢāļ§āļˆāļˆāļąāļšāđ„āļ”āđ‰
  4. āļ•āļīāļ”āđāļ—āđ‡āļāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ„āļĄāđˆāļĢāļđāđ‰āļˆāļąāļāđ€āļžāļ·āđˆāļ­āļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāļ•āļ™āđ€āļ­āļ‡

4. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāđ€āļāđ‰āļēāļĢāļ°āļ§āļąāļ‡ (Security and Surveillance)​

āđ€āļāđ‰āļēāļ•āļīāļ”āļ•āļēāļĄāđāļĨāļ°āļĢāļ°āļšāļļāļ•āļąāļ§āļšāļļāļ„āļ„āļĨāđƒāļ™āļŸāļļāļ•āđ€āļ—āļˆāļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ:

  • āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļŠāļđāļāđ€āļŠāļĩāļĒāđƒāļ™āļĢāđ‰āļēāļ™āļ„āđ‰āļēāļ›āļĨāļĩāļ
  • āļāļēāļĢāđ€āļāđ‰āļēāļĢāļ°āļ§āļąāļ‡āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļēāļ˜āļēāļĢāļ“āļ°
  • āļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āļšāļļāļ„āļ„āļĨāļŠāļģāļ„āļąāļ (VIP)
  • āļāļēāļĢāļ„āļąāļ”āļāļĢāļ­āļ‡āļšāļąāļāļŠāļĩāļ”āļģ

āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰:

  1. āļ”āļķāļ‡āđ€āļŸāļĢāļĄāļˆāļēāļāļŸāļĩāļ”āļ§āļīāļ”āļĩāđ‚āļ­
  2. āđƒāļŠāđ‰ /detect/multi āđ€āļžāļ·āđˆāļ­āļ„āđ‰āļ™āļŦāļēāđƒāļšāļŦāļ™āđ‰āļē
  3. āđƒāļŠāđ‰ /recog/multi āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆ
  4. āđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđ€āļĄāļ·āđˆāļ­āļžāļšāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļŠāļđāļ‡
  5. āļˆāļąāļ”āđ€āļāđ‡āļšāļ›āļĢāļ°āļ§āļąāļ•āļīāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš

5. āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļĨāļđāļāļ„āđ‰āļē (Customer Experience)​

āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļāļēāļĢāļšāļĢāļīāļāļēāļĢāļĨāļđāļāļ„āđ‰āļēāļ”āđ‰āļ§āļĒāļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē:

  • āļāļēāļĢāļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āļĨāļđāļāļ„āđ‰āļē VIP
  • āļ›āļĢāļ°āļŠāļšāļāļēāļĢāļ“āđŒāļāļēāļĢāļŠāđ‡āļ­āļ›āļ›āļīāđ‰āļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§
  • āļāļēāļĢāļĢāļ§āļĄāļĢāļ°āļšāļšāđ‚āļ›āļĢāđāļāļĢāļĄāļŠāļ°āļŠāļĄāđāļ•āđ‰āļĄ
  • āļāļēāļĢāļˆāļ”āļˆāļģāļĨāļđāļāļ„āđ‰āļēāļ—āļĩāđˆāļāļĨāļąāļšāļĄāļēāđƒāļŠāđ‰āļšāļĢāļīāļāļēāļĢ

āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰:

  1. āļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āđƒāļšāļŦāļ™āđ‰āļēāļĨāļđāļāļ„āđ‰āļēāđ‚āļ”āļĒāđ„āļ”āđ‰āļĢāļąāļšāļ„āļ§āļēāļĄāļĒāļīāļ™āļĒāļ­āļĄ
  2. āđƒāļŠāđ‰ /recog/single āđ€āļžāļ·āđˆāļ­āļĢāļ°āļšāļļāļ•āļąāļ§āļ•āļ™āđ€āļĄāļ·āđˆāļ­āđ€āļ‚āđ‰āļēāļĢāđ‰āļēāļ™
  3. āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļ§āļēāļĄāļŠāļ­āļšāđāļĨāļ°āļ›āļĢāļ°āļ§āļąāļ•āļīāļĨāļđāļāļ„āđ‰āļē
  4. āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§
  5. āđ€āļ„āļēāļĢāļžāļāļŽāļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āđāļĨāļ°āļ‚āđ‰āļ­āļšāļąāļ‡āļ„āļąāļšāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāļ›āļāļ›āđ‰āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđāļĨāļ°āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļē (Limitations and Considerations)​

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„ (Technical Limitations)​

  1. āļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļž (Image Size)

    • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
    • āđ„āļŸāļĨāđŒāļ—āļĩāđˆāđ€āļāļīāļ™āļ‚āļĩāļ”āļˆāļģāļāļąāļ”āļˆāļ°āļŠāđˆāļ‡āļ„āļ·āļ™āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” HTTP 413
  2. āļ‚āļ™āļēāļ”āđƒāļšāļŦāļ™āđ‰āļē (Face Size)

    • āļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 112x112 āļžāļīāļāđ€āļ‹āļĨ
    • āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļĨāđ‡āļāļāļ§āđˆāļēāļ‚āļąāđ‰āļ™āļ•āđˆāļģāļ­āļēāļˆāļ•āļĢāļ§āļˆāđ„āļĄāđˆāļžāļš
  3. āļĄāļļāļĄāđƒāļšāļŦāļ™āđ‰āļē (Face Angle)

    • āđ€āļŦāļĄāļēāļ°āļŠāļĄāļ—āļĩāđˆāļŠāļļāļ”: āļĄāļļāļĄāļĄāļ­āļ‡āļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē (Âą15 āļ­āļ‡āļĻāļē)
    • āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļĨāļ”āļĨāļ‡āđ€āļĄāļ·āđˆāļ­āļĄāļļāļĄāđ€āļ­āļĩāļĒāļ‡āļŠāļļāļ”āļ‚āļąāđ‰āļ§
  4. āļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļž (Image Quality)

    • āļĢāļđāļ›āļ āļēāļžāļ„āļļāļ“āļ āļēāļžāļ•āđˆāļģāļ­āļēāļˆāļŠāđˆāļ‡āļœāļĨāđƒāļŦāđ‰āļ•āļĢāļ§āļˆāļˆāļąāļšāļĨāđ‰āļĄāđ€āļŦāļĨāļ§
    • āļ āļēāļžāđ€āļšāļĨāļ­āļˆāļēāļāļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āđ„āļŦāļ§āļĨāļ”āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ
  5. āļ‚āļ™āļēāļ”āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (Database Size)

    • āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ­āļēāļˆāļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ
    • āđāļ™āļ°āļ™āļģāđƒāļŦāđ‰āļšāļģāļĢāļļāļ‡āļĢāļąāļāļĐāļēāđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ

āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ”āđ‰āļēāļ™āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Performance Considerations)​

  1. āđ€āļ§āļĨāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ (Processing Time)

    • āļ›āļāļ•āļī: 0.3-1.0 āļ§āļīāļ™āļēāļ—āļĩāļ•āđˆāļ­āļ„āļģāļ‚āļ­
    • āļ­āļēāļˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđ€āļĄāļ·āđˆāļ­āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļĄāļĩāļ āļēāļĢāļ°āļ‡āļēāļ™āļŠāļđāļ‡
    • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļēāđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™āļāļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§
  2. āļ›āļąāļˆāļˆāļąāļĒāļ”āđ‰āļēāļ™āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ (Accuracy Factors)

    • āļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļž
    • āļŠāļ āļēāļžāđāļŠāļ‡
    • āļĄāļļāļĄāđƒāļšāļŦāļ™āđ‰āļēāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļ­āļ­āļ
    • āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āļ•āļēāļĄāļ§āļąāļĒ
    • āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ›āļĢāļ°āļ”āļąāļšāļšāļ™āđƒāļšāļŦāļ™āđ‰āļē
  3. āļ­āļąāļ•āļĢāļēāļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ (Rate Limits)

    • āļĄāļĩāļāļēāļĢāļˆāļģāļāļąāļ”āļ­āļąāļ•āļĢāļēāļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ API
    • āļĢāļ°āļšāļšāļ„āļīāļ§āļˆāļąāļ”āļāļēāļĢāļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļđāļ‡
    • āļ•āļīāļ”āļ•āđˆāļ­āļāđˆāļēāļĒāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļŠāļģāļŦāļĢāļąāļšāļ‚āļĩāļ”āļˆāļģāļāļąāļ”āļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™

āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš (Privacy and Compliance)​

  1. āļāļēāļĢāļ›āļāļ›āđ‰āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (Data Protection)

    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāļˆāļąāļ”āđ€āļāđ‡āļšāļĢāļđāļ›āļ āļēāļžāļŦāļĨāļąāļ‡āļˆāļēāļāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ
    • āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđƒāļšāļŦāļ™āđ‰āļēāļ–āļđāļāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
    • āđ€āļ›āđ‡āļ™āđ„āļ›āļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āļ‚āļ­āļ„āļ§āļēāļĄāļĒāļīāļ™āļĒāļ­āļĄāļˆāļēāļāļœāļđāđ‰āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāđƒāļšāļŦāļ™āđ‰āļē
  2. āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ­āļĒāđˆāļēāļ‡āļĄāļĩāļˆāļĢāļīāļĒāļ˜āļĢāļĢāļĄ (Ethical Use)

    • āđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļ§āļąāļ•āļ–āļļāļ›āļĢāļ°āļŠāļ‡āļ„āđŒāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ•āļēāļĄāļāļŽāļŦāļĄāļēāļĒāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™
    • āđ€āļ„āļēāļĢāļžāļŠāļīāļ—āļ˜āļīāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§
    • āđƒāļŠāđ‰āļāļĨāđ„āļāļāļēāļĢāļĒāļāđ€āļĨāļīāļ (opt-out mechanisms)
    • āļĄāļĩāļ„āļ§āļēāļĄāđ‚āļ›āļĢāđˆāļ‡āđƒāļŠāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāđƒāļŠāđ‰āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē
  3. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ (Security)

    • āļ›āļāļ›āđ‰āļ­āļ‡ API keys
    • āđƒāļŠāđ‰ HTTPS āļŠāļģāļŦāļĢāļąāļšāļ—āļļāļāļ„āļģāļ‚āļ­
    • āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē
    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ

āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļŦāļĄāļēāļĒ (Regulatory Compliance)​

  1. GDPR (āļĒāļļāđ‚āļĢāļ›)

    • āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļĩāļ§āļĄāļīāļ•āļīāđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ›āļĢāļ°āđ€āļ āļ—āļžāļīāđ€āļĻāļĐ
    • āļ•āđ‰āļ­āļ‡āđ„āļ”āđ‰āļĢāļąāļšāļ„āļ§āļēāļĄāļĒāļīāļ™āļĒāļ­āļĄāļ­āļĒāđˆāļēāļ‡āļŠāļąāļ”āđāļˆāđ‰āļ‡
    • āļĄāļĩāļŠāļīāļ—āļ˜āļīāđŒāđƒāļ™āļāļēāļĢāļĨāļšāļ‚āđ‰āļ­āļĄāļđāļĨ
    • āļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™āļœāļĨāļāļĢāļ°āļ—āļšāļ”āđ‰āļēāļ™āļāļēāļĢāļ„āļļāđ‰āļĄāļ„āļĢāļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ (DPIA)
  2. PDPA (āļ›āļĢāļ°āđ€āļ—āļĻāđ„āļ—āļĒ)

    • āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļĩāļ§āļĄāļīāļ•āļīāļ•āđ‰āļ­āļ‡āđ„āļ”āđ‰āļĢāļąāļšāļ„āļ§āļēāļĄāļĒāļīāļ™āļĒāļ­āļĄ
    • āđāļˆāđ‰āļ‡āļœāļđāđ‰āļ—āļĩāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļ›āđ‡āļ™āļ‚āļ­āļ‡āļ•āļ™āđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ§āļąāļ•āļ–āļļāļ›āļĢāļ°āļŠāļ‡āļ„āđŒ
    • āđƒāļŠāđ‰āļĄāļēāļ•āļĢāļāļēāļĢāļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ
    • āļ­āļ™āļļāļāļēāļ•āļŠāļīāļ—āļ˜āļīāđŒāļ‚āļ­āļ‡āđ€āļˆāđ‰āļēāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ
  3. āļāļŽāļŦāļĄāļēāļĒāļ­āļ·āđˆāļ™āđ† (Other Regulations)

    • āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļŽāļŦāļĄāļēāļĒāđāļĨāļ°āļ‚āđ‰āļ­āļšāļąāļ‡āļ„āļąāļšāđƒāļ™āļ—āđ‰āļ­āļ‡āļ–āļīāđˆāļ™
    • āļ‚āļ­āđƒāļšāļ­āļ™āļļāļāļēāļ•āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
    • āđƒāļŠāđ‰āļĄāļēāļ•āļĢāļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™
    • āļšāļąāļ™āļ—āļķāļāļĄāļēāļ•āļĢāļāļēāļĢāļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļŦāļĄāļēāļĒ

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Accuracy & Performance)​

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģ (Recognition Accuracy)​

  • āđƒāļšāļŦāļ™āđ‰āļēāļ”āđ‰āļēāļ™āļŦāļ™āđ‰āļē: āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 98-99%
  • āđƒāļšāļŦāļ™āđ‰āļēāļ—āļģāļĄāļļāļĄ (Âą15°): āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 95-97%
  • āđƒāļšāļŦāļ™āđ‰āļēāļ—āļģāļĄāļļāļĄ (Âą30°): āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 85-90%
  • āļĄāļļāļĄāļĄāļ­āļ‡āļ”āđ‰āļēāļ™āļ‚āđ‰āļēāļ‡: āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļˆāļģāļāļąāļ” (āđ„āļĄāđˆāđāļ™āļ°āļ™āļģ)

āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ (Processing Speed)​

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§: 0.2-0.3 āļ§āļīāļ™āļēāļ—āļĩ
  • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§: 0.4-0.6 āļ§āļīāļ™āļēāļ—āļĩ
  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē: 0.3-0.5 āļ§āļīāļ™āļēāļ—āļĩ
  • āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē: 0.5-1.0 āļ§āļīāļ™āļēāļ—āļĩ
  • āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē: 0.4-0.6 āļ§āļīāļ™āļēāļ—āļĩ

āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ: āđ€āļ§āļĨāļēāđ€āļ›āđ‡āļ™āļ„āđˆāļēāļ—āļąāđˆāļ§āđ„āļ›āđāļĨāļ°āļ­āļēāļˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™āđ„āļ›āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļ‚āļ™āļēāļ”āļĢāļđāļ›āļ āļēāļž āļ āļēāļĢāļ°āļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđāļĨāļ°āļ„āļ§āļēāļĄāļŦāļ™āđˆāļ§āļ‡āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ

āļ›āļąāļˆāļˆāļąāļĒāļ—āļĩāđˆāļĄāļĩāļœāļĨāļ•āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Factors Affecting Performance)​

  1. āļ„āļļāļ“āļ āļēāļžāļĢāļđāļ›āļ āļēāļž (Image Quality)

    • āļ„āļ§āļēāļĄāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļŠāļđāļ‡ = āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāļ”āļĩāļ‚āļķāđ‰āļ™, āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ™āļēāļ™āļ‚āļķāđ‰āļ™
    • āļŠāļīāđˆāļ‡āđāļ›āļĨāļāļ›āļĨāļ­āļĄāļˆāļēāļāļāļēāļĢāļšāļĩāļšāļ­āļąāļ”āļĨāļ”āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ
    • āđāļŠāļ‡āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāļĄāļĩāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļ•āđˆāļ­āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ
  2. āļ‚āļ™āļēāļ”āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļšāļŦāļ™āđ‰āļē (Face Database Size)

    • āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ = āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģāļ™āļēāļ™āļ‚āļķāđ‰āļ™āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ
    • āļŠāļđāļ‡āļŠāļļāļ” 10,000 āđƒāļšāļŦāļ™āđ‰āļē: āļœāļĨāļāļĢāļ°āļ—āļšāđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ
    • āļĄāļēāļāļāļ§āđˆāļē 10,000 āđƒāļšāļŦāļ™āđ‰āļē: āļžāļīāļˆāļēāļĢāļ“āļēāļāļēāļĢāļ›āļĢāļąāļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļŦāđ‰āđ€āļŦāļĄāļēāļ°āļŠāļĄ
  3. āļŠāļ āļēāļžāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ (Network Conditions)

    • āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ­āļąāļ›āđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒāļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āđ€āļ§āļĨāļēāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ—āļąāđ‰āļ‡āļŦāļĄāļ”
    • āđƒāļŠāđ‰āļāļēāļĢāļŦāļĄāļ”āđ€āļ§āļĨāļēāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ
    • āđƒāļŠāđ‰āļ•āļĢāļĢāļāļ°āļāļēāļĢāļĨāļ­āļ‡āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ
  4. āļ āļēāļĢāļ°āļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ (Server Load)

    • āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļ—āļĩāđˆāļĄāļĩāļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļđāļ‡āļ­āļēāļˆāļĄāļĩāđ€āļ§āļĨāļēāļ„āļ­āļĒāļ™āļēāļ™āļ‚āļķāđ‰āļ™
    • āļĢāļ°āļšāļšāļ„āļīāļ§āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ€āļ›āđ‡āļ™āđ„āļ›āļ­āļĒāđˆāļēāļ‡āļĒāļļāļ•āļīāļ˜āļĢāļĢāļĄ
    • āļ•āļīāļ”āļ•āđˆāļ­āļāđˆāļēāļĒāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļŠāļģāļŦāļĢāļąāļšāļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļ‰āļžāļēāļ°

āļĢāļēāļ„āļē (Pricing)​

āļĢāļēāļ„āļē API Endpoints (API Endpoints Pricing)​

āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢEndpointāļĢāļēāļ„āļē ICāļŦāļ™āđˆāļ§āļĒ
āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§/v3/store/ekyc/face-recognition/single0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-recognition/multi0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āđ€āļžāļīāđˆāļĄāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ‚āđ‰āļēāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ/v3/store/ekyc/face-recognition/add0.1 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ/v3/store/ekyc/face-recognition/check0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§/v3/store/ekyc/face-detection/single0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-detection/multi0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-comparison0.3 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļĨāļšāđƒāļšāļŦāļ™āđ‰āļē/v3/store/ekyc/face-recognition/remove0 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļ™āļģāđ€āļ‚āđ‰āļēāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī/v3/store/ekyc/face-recognition/import0 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļŠāđˆāļ‡āļ­āļ­āļāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī/v3/store/ekyc/face-recognition/export0 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒ/v3/store/ekyc/face-recognition/config0 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰
āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™/v3/store/ekyc/face-recognition/password/change0 ICāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰

āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ (On-Premise Deployment)​

āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ›āļĢāļīāļĄāļēāļ“āļŠāļđāļ‡āļŦāļĢāļ·āļ­āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āļ”āđ‰āļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™ āđ‚āļ›āļĢāļ”āļžāļīāļˆāļēāļĢāļ“āļēāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ:

  • āļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ API āđ„āļĄāđˆāļˆāļģāļāļąāļ”
  • āđ„āļĄāđˆāļĄāļĩāļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļ­āļāļˆāļēāļāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡āļ„āļļāļ“
  • āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡
  • āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ”āđ‰āļēāļ™āđ€āļ—āļ„āļ™āļīāļ„āđ€āļ‰āļžāļēāļ°
  • āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡

āļ•āļīāļ”āļ•āđˆāļ­āđ€āļĢāļē āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđƒāļšāļ­āļ™āļļāļāļēāļ•āđāļĨāļ°āļĢāļēāļ„āļēāļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ


āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™ (Support)​

āđ€āļ­āļāļŠāļēāļĢ (Documentation)​

  • API Reference: āđ€āļ­āļāļŠāļēāļĢ endpoint āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒ (āļŦāļ™āđ‰āļēāļ›āļąāļˆāļˆāļļāļšāļąāļ™)
  • Integration Guides: āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļ•āļēāļĄāļ āļēāļĐāļē
  • Code Examples: āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™
  • Best Practices: āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āđāļĨāļ°āļĢāļąāļāļĐāļēāļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ

āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ”āđ‰āļēāļ™āđ€āļ—āļ„āļ™āļīāļ„ (Technical Support)​

āļāļēāļĢāļŠāļ­āļšāļ–āļēāļĄāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ (Business Inquiries)​

āļŠāļģāļŦāļĢāļąāļšāđ‚āļ‹āļĨāļđāļŠāļąāļ™āļĢāļ°āļ”āļąāļšāļ­āļ‡āļ„āđŒāļāļĢ āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡ āļŦāļĢāļ·āļ­āļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡āļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ:

  • āļāđˆāļēāļĒāļ‚āļēāļĒ: sale@iapp.co.th
  • āđ‚āļ—āļĢāļĻāļąāļžāļ—āđŒ: 086-322-5858
  • āđāļšāļšāļŸāļ­āļĢāđŒāļĄāļ•āļīāļ”āļ•āđˆāļ­: https://iapp.co.th/contact-us

āļšāļąāļ™āļ—āļķāļāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡ (Changelog)​

āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 1.3.0 (āļ›āļąāļˆāļˆāļļāļšāļąāļ™)​

  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđƒāļ™āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāļŠāļģāļŦāļĢāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļ—āļģāļĄāļļāļĄ
  • āđ€āļžāļīāđˆāļĄ endpoints āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđāļĨāļ°āļāļēāļĢāļĢāļēāļĒāļ‡āļēāļ™
  • āđ€āļžāļīāđˆāļĄāđ€āļ­āļāļŠāļēāļĢ API āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒ

āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 1.2.0​

  • āđ€āļžāļīāđˆāļĄ endpoint āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļāļēāļĢāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ™āļģāđ€āļ‚āđ‰āļē/āļŠāđˆāļ‡āļ­āļ­āļāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
  • āđ€āļžāļīāđˆāļĄāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļĢāļŦāļąāļŠāļœāđˆāļēāļ™
  • āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 1.1.0​

  • āđ€āļžāļīāđˆāļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāļˆāļ”āļˆāļģāļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļē
  • āđāļ™āļ°āļ™āļģāđ€āļāļ“āļ‘āđŒāļ„āļ°āđāļ™āļ™āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āļ„āđˆāļēāđ„āļ”āđ‰
  • āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”
  • āđ€āļžāļīāđˆāļĄāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ
  • āļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 1.0.0​

  • āļĢāļļāđˆāļ™āđāļĢāļ
  • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§
  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē
  • āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļžāļ·āđ‰āļ™āļāļēāļ™

  • Thai ID Card OCR: āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļāļšāļąāļ•āļĢāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļ›āļĢāļ°āļŠāļēāļŠāļ™āđ„āļ—āļĒ
  • Face Liveness Detection: āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāļˆāļĢāļīāļ‡āđ€āļ—āļĩāļĒāļšāļāļąāļšāļĢāļđāļ›āļ–āđˆāļēāļĒ
  • Document OCR: āļ”āļķāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļˆāļēāļāđ€āļ­āļāļŠāļēāļĢ
  • Passport OCR: āļ”āļķāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļēāļāļŦāļ™āļąāļ‡āļŠāļ·āļ­āđ€āļ”āļīāļ™āļ—āļēāļ‡

ÂĐ 2025 āļšāļĢāļīāļĐāļąāļ— āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļˆāļģāļāļąāļ” āļŠāļ‡āļ§āļ™āļĨāļīāļ‚āļŠāļīāļ—āļ˜āļīāđŒāļ—āļļāļāļ›āļĢāļ°āļāļēāļĢ

API āļ™āļĩāđ‰āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļ•āļēāļĄāļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āđāļĨāļ°āļ„āļ§āļēāļĄāļāđ‰āļēāļ§āļŦāļ™āđ‰āļēāļ—āļēāļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āđ‚āļ›āļĢāļ”āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ