Skip to main content

ðŸ‘Ī🔍 āļĢāļ°āļšāļšāļˆāļ”āļˆāļģāđāļĨāļ°āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļē API

0.1 - 0.3 ICāļ•āđˆāļ­āļ„āļģāļ‚āļ­ (āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ)
v1.3.0 Active POST /v3/store/ekyc/face-recognition

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

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

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

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): āļ•āļĢāļ§āļˆāļˆāļąāļšāđƒāļšāļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āļŦāļĢāļ·āļ­āļŦāļĨāļēāļĒāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļĢāļđāļ›āļ āļēāļžāļžāļĢāđ‰āļ­āļĄāļžāļīāļāļąāļ”āļāļĨāđˆāļ­āļ‡āļ‚āļ­āļšāđ€āļ‚āļ• (bounding box)
  • āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē (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 Management āđ€āļžāļ·āđˆāļ­āļ”āļđ 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​

Endpoints āļāļēāļĢāļˆāļ”āļˆāļģāđƒāļšāļŦāļ™āđ‰āļē (Recognition Endpoints)​

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

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

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

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ (Request Parameters):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

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

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
nameStringāđƒāļŠāđˆāļŠāļ·āđˆāļ­āļšāļļāļ„āļ„āļĨāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļĨāļš
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
face_idStringāđ„āļĄāđˆID āđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļĨāļš (āļŦāļēāļāļĄāļĩāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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"

āļžāļĢāđ‰āļ­āļĄ 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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
save_fileStringāđ„āļĄāđˆāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ "True" āļŦāļĢāļ·āļ­ "1" āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ‡āļ­āļ­āļāđ„āļŸāļĨāđŒāļĢāļēāļĒāļ‡āļēāļ™

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

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

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

āļŠāđˆāļ‡āļ„āļ·āļ™āđ„āļŸāļĨāđŒ 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):

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

āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒ 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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
type_fileStringāđƒāļŠāđˆāļĢāļđāļ›āđāļšāļšāļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ: "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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringāđ„āļĄāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļšāļąāļ‡āļ„āļąāļš)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
fileFileāđƒāļŠāđˆāđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļž (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringāđ„āļĄāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļšāļąāļ‡āļ„āļąāļš)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
file1FileāđƒāļŠāđˆāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāđāļĢāļ (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
file2FileāđƒāļŠāđˆāļĢāļđāļ›āļ āļēāļžāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡ (JPEG, JPG, PNG, āļŠāļđāļ‡āļŠāļļāļ” 2MB)
companyStringāđ„āļĄāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ— (āđ„āļĄāđˆāļšāļąāļ‡āļ„āļąāļš)
min_scoreFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļ„āļ§āļēāļĄāđ€āļŦāļĄāļ·āļ­āļ™āļ‚āļąāđ‰āļ™āļ•āđˆāļģ (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļšāļĢāļīāļĐāļąāļ—āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™
detectionFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
comparisonFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
recognitionFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ (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):

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

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

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

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

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


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

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

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

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢ (Request Parameters):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļĢāļ°āļšāļļāļšāļĢāļīāļĐāļąāļ—āļ‚āļ­āļ‡āļ„āļļāļ“
old_passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™
new_passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđƒāļŦāļĄāđˆ (āļ•āđ‰āļ­āļ‡āđāļ•āļāļ•āđˆāļēāļ‡)

āļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ "admin"
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
fileFileāđƒāļŠāđˆāđ„āļŸāļĨāđŒ 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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆāļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ "admin"
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
type_fileStringāđƒāļŠāđˆāļĢāļđāļ›āđāļšāļšāļāļēāļĢāļŠāđˆāļ‡āļ­āļ­āļ: "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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆ"admin" āļŦāļĢāļ·āļ­ "demo"
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
detectionFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
comparisonFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš (0-100 āļŦāļĢāļ·āļ­ 0-1)
recognitionFloatāđ„āļĄāđˆāđ€āļāļ“āļ‘āđŒāļāļēāļĢāļˆāļ”āļˆāļģ (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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆ"admin" āļŦāļĢāļ·āļ­ "demo"
passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļš
save_fileStringāđ„āļĄāđˆāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ "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):

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
companyStringāđƒāļŠāđˆ"admin" āļŦāļĢāļ·āļ­ "demo"
old_passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļœāļđāđ‰āļ”āļđāđāļĨāļĢāļ°āļšāļšāļ›āļąāļˆāļˆāļļāļšāļąāļ™
new_passwordStringāđƒāļŠāđˆāļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđƒāļŦāļĄāđˆ (āļ•āđ‰āļ­āļ‡āđāļ•āļāļ•āđˆāļēāļ‡)

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

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)​

āļĢāļŦāļąāļŠāļŠāļ–āļēāļ™āļ°āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
200āļŠāļģāđ€āļĢāđ‡āļˆ (Success)
404Endpoint āđ„āļĄāđˆāļžāļš
405Method āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļąāļšāļ­āļ™āļļāļāļēāļ• (āđƒāļŠāđ‰ POST)
413Request entity āđƒāļŦāļāđˆāđ€āļāļīāļ™āđ„āļ› (āđ„āļŸāļĨāđŒ > 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŠāđ‰āļ‡āļēāļ™āļšāļĢāļīāļāļēāļĢāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļīāļ™
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļšāļĢāļīāļāļēāļĢāļ āļēāļ„āļĢāļąāļ
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ­āļēāļĒāļļ
  • āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āđ€āļ­āļāļŠāļēāļĢ (āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļĢāļđāļ›āļ–āđˆāļēāļĒāļšāļąāļ•āļĢāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§āļāļąāļš selfie)

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

  1. āđāļĒāļāđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļāđ€āļ­āļāļŠāļēāļĢāļ›āļĢāļ°āļˆāļģāļ•āļąāļ§
  2. āļ–āđˆāļēāļĒ selfie āđāļšāļšāļŠāļ”
  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. āļˆāļąāļ”āđ€āļāđ‡āļš log āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđ€āļžāļ·āđˆāļ­āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš

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)

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

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

āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§āđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļ‚āđ‰āļ­āļāļģāļŦāļ™āļ” (Privacy and Compliance)​

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

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

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

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

āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš (Regulatory Compliance)​

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • āđ€āļ§āļĨāļēāļ­āļąāļ›āđ‚āļŦāļĨāļ”āđ„āļŸāļĨāđŒāļŠāđˆāļ‡āļœāļĨāļ•āđˆāļ­āđ€āļ§āļĨāļēāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ—āļąāđ‰āļ‡āļŦāļĄāļ”
    • āđƒāļŠāđ‰ timeout āļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄ
    • āđƒāļŠāđ‰āļ•āļĢāļĢāļāļ°āļāļēāļĢāļĨāļ­āļ‡āđƒāļŦāļĄāđˆāļŠāļģāļŦāļĢāļąāļšāļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ‚āļ­āļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ
  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: āđ€āļ­āļāļŠāļēāļĢ endpoint āļ—āļĩāđˆāļŠāļĄāļšāļđāļĢāļ“āđŒ (āļŦāļ™āđ‰āļēāļ™āļĩāđ‰)
  • āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄ: āļ„āļđāđˆāļĄāļ·āļ­āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļ•āļēāļĄāļ āļēāļĐāļē
  • āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”: āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”āļžāļĢāđ‰āļ­āļĄāđƒāļŠāđ‰āļ‡āļēāļ™
  • āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”: āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒ

āļāļēāļĢāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļ—āļēāļ‡āđ€āļ—āļ„āļ™āļīāļ„ (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 āļ™āļĩāđ‰āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ­āļĒāđˆāļēāļ‡āļ•āđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļ•āļēāļĄāļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™āļ‚āļ­āļ‡āļœāļđāđ‰āđƒāļŠāđ‰āđāļĨāļ°āļāļēāļĢāļžāļąāļ’āļ™āļēāļ—āļēāļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļāļĢāļļāļ“āļēāļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđ€āļ›āđ‡āļ™āļ›āļĢāļ°āļˆāļģ