Skip to main content

ðŸ‘Ĩ āļĢāļ°āļšāļšāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļāļĢāļđāļ›āļ–āđˆāļēāļĒ 2 āđƒāļš (Face Verification) 🆕

ðŸ‘ĪðŸ‘Ī āļĢāļ°āļšāļšāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™āļ”āđ‰āļ§āļĒāđƒāļšāļŦāļ™āđ‰āļē

Version Status

āļĒāļīāļ™āļ”āļĩāļ•āđ‰āļ­āļ™āļĢāļąāļšāļŠāļđāđˆ Face Verification API āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ 2 āļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒ AI āļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒ āļšāļĢāļīāļĐāļąāļ— āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļˆāļģāļāļąāļ” API āļ‚āļ­āļ‡āđ€āļĢāļēāļ–āļđāļāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļēāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļŠāļ­āļ‡āļ āļēāļžāļ”āđ‰āļ§āļĒāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļŠāļđāļ‡ API āļ™āļĩāđ‰āđƒāļŦāđ‰āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļāļąāļ™āđ€āļžāļ·āđˆāļ­āļŠāđˆāļ§āļĒāđƒāļ™āļāļēāļĢāļžāļīāļˆāļēāļĢāļ“āļēāļ§āđˆāļēāđƒāļšāļŦāļ™āđ‰āļēāļŠāļ­āļ‡āđƒāļšāļ™āļąāđ‰āļ™āđ€āļ›āđ‡āļ™āļ„āļ™āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļŦāļĢāļ·āļ­āđ„āļĄāđˆ

Try Demo

Visit our API Portal to test the Face Verification API with your own images.

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

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

    • API key āļˆāļēāļ āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ
    • āđ„āļŸāļĨāđŒāļĢāļđāļ›āļ āļēāļžāļŠāļ­āļ‡āđ„āļŸāļĨāđŒāļ—āļĩāđˆāļĄāļĩāđƒāļšāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļˆāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš
    • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: JPG, JPEG, PNG, HEIC āđāļĨāļ° HEIF
    • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB āļ•āđˆāļ­āļ āļēāļž
    • āļ‚āļ™āļēāļ”āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600px x 400px āļŠāļģāļŦāļĢāļąāļšāļšāļļāļ„āļ„āļĨāļŦāļ™āļķāđˆāļ‡āļ„āļ™āđāļĨāļ°āļŦāļĨāļēāļĒāļ„āļ™
  2. āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§

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

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

    • āļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļēāļ‚āđ‰āļ­āļĄāļđāļĨāļ āļēāļž
    • āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ” API āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒ
āļ§āļīāļ˜āļĩāļĢāļąāļš API Key?

āļāļĢāļļāļ“āļēāđ€āļĒāļĩāđˆāļĒāļĄāļŠāļĄ API Portal āđ€āļžāļ·āđˆāļ­āļ”āļđ API key āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“āļŦāļĢāļ·āļ­āļ‚āļ­ API key āđƒāļŦāļĄāđˆ

āļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļāļąāļ™â€‹

āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļāļąāļ™āļ­āļĒāļđāđˆāđƒāļ™āļŠāđˆāļ§āļ‡ 0 āļ–āļķāļ‡ 2822 āļ‹āļķāđˆāļ‡āđ„āļ”āđ‰āļĄāļēāļˆāļēāļāļāļēāļĢāļˆāļąāļšāļ„āļđāđˆāđ€āļ—āļĄāđ€āļžāļĨāļ•āđƒāļšāļŦāļ™āđ‰āļēāļˆāļēāļ 166 āļˆāļļāļ”āļšāļ™āđƒāļšāļŦāļ™āđ‰āļē āļŠāļģāļŦāļĢāļąāļšāđāļ•āđˆāļĨāļ°āļˆāļļāļ”āļ­āļĒāļđāđˆāđƒāļ™āļŠāđˆāļ§āļ‡āļ„āļ§āļēāļĄāļ„āļĨāđ‰āļēāļĒāļ„āļĨāļķāļ‡āļāļąāļ™ 0-17 āļ‹āļķāđˆāļ‡āļ„āļģāļ™āļ§āļ“āļˆāļēāļāļĢāļ°āļĒāļ°āļ—āļēāļ‡ āļĄāļļāļĄ āđāļĨāļ°āļĨāļąāļāļĐāļ“āļ°āđ€āļ‰āļžāļēāļ°āļĢāļ°āļŦāļ§āđˆāļēāļ‡ 17 āļˆāļļāļ”āđ‚āļ”āļĒāļĢāļ­āļš āļ„āļ°āđāļ™āļ™āļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™āļĄāļĩāđ‚āļ­āļāļēāļŠāļŠāļđāļ‡āļ—āļĩāđˆāļˆāļ°āđ€āļ›āđ‡āļ™āđƒāļšāļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļ„āļ™āđ€āļ”āļĩāļĒāļ§āļāļąāļ™

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

āđ€āļāļ“āļ‘āđŒāļ—āļĩāđˆāļŠāļđāļ‡āļ‚āļķāđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģ 99.95% āļ„āļ·āļ­ 48

note

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

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡â€‹

āļ„āļģāļ‚āļ­ Face Verification API​

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

Image 1Image 2
    curl --location --request POST 'https://api.iapp.co.th/face-verification/v2/face_compare' \
--header 'apikey: YOUR_API_KEY' \
--form 'file1=@"{Your Image File Path 1}"' \
--form 'file2=@"{Your Image File Path 2}"'

āļāļēāļĢāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ‚āļ­āļ‡ Face Verification API:​

{
"duration": 2.1263949871063232,
"matched": true,
"message": "successfully performed",
"score": 38.0,
"threshold": 37
}

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–​

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

  • āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđƒāļšāļŦāļ™āđ‰āļē
  • āļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļš JPG, JPEG, PNG, HEIC āđāļĨāļ° HEIF
  • āļ‚āļ™āļēāļ”āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: āļ„āļ§āļēāļĄāļāļ§āđ‰āļēāļ‡ 600px x āļ„āļ§āļēāļĄāļŠāļđāļ‡ 400px āļŠāļģāļŦāļĢāļąāļšāļšāļļāļ„āļ„āļĨāļŦāļ™āļķāđˆāļ‡āļ„āļ™āđāļĨāļ°āļŦāļĨāļēāļĒāļ„āļ™
  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļ„āļ°āđāļ™āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļąāļšāđāļĨāļ°āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡āđ„āļ”āđ‰
  • āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹ API āđāļšāļš REST
  • āđ€āļ™āđ‰āļ™āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ•āļąāļ§: āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ„āļļāļ“āļĨāļąāļāļĐāļ“āļ°āđ€āļŠāļīāļ‡āļ•āļąāļ§āđ€āļĨāļ‚āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļˆāļąāļ”āđ€āļāđ‡āļšāļ āļēāļž

āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

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

āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ API​

āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”​

POST https://api.iapp.co.th/face-verification/v2/face_compare

āļŠāđˆāļ§āļ™āļŦāļąāļ§āļ‚āļ­āļ‡āļ„āļģāļ‚āļ­â€‹

āļŠāļ·āđˆāļ­āļŠāļ™āļīāļ”āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
apikeystringāđƒāļŠāđˆAPI key āļ‚āļ­āļ‡āļ„āļļāļ“

āđ€āļ™āļ·āđ‰āļ­āļŦāļēāļ‚āļ­āļ‡āļ„āļģāļ‚āļ­ (multipart/form-data)​

āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŠāļ™āļīāļ”āļˆāļģāđ€āļ›āđ‡āļ™āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
file1FileāđƒāļŠāđˆāļ āļēāļžāđāļĢāļāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš
file2FileāđƒāļŠāđˆāļ āļēāļžāļ—āļĩāđˆāļŠāļ­āļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš
thresholdNumberāđ„āļĄāđˆāđƒāļŠāđˆāļ„āļ°āđāļ™āļ™āđ€āļāļ“āļ‘āđŒāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļˆāļąāļšāļ„āļđāđˆāđƒāļšāļŦāļ™āđ‰āļē āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ„āļ·āļ­ 36 āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ„āļ”āđ‰āļ­āļąāļ•āļĢāļēāļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļ—āļĩāđˆāļœāļīāļ”āļžāļĨāļēāļ”āļ•āđˆāļģāļĄāļēāļ (FAR) āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļ›āđ‡āļ™ 48 āđ„āļ”āđ‰

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

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļąāđˆāļ§āđ„āļ›â€‹

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
404āđ„āļĄāđˆāļĄāļĩāđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļ—āļĩāđˆāļ•āļĢāļ‡āļāļąāļ™āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ” API āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
405āļ§āļīāļ˜āļĩāļāļēāļĢāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļ§āļīāļ˜āļĩ HTTP āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡
413āđ„āļŸāļĨāđŒāđƒāļŦāļāđˆāđ€āļāļīāļ™āđ„āļ›āļ āļēāļžāđ€āļāļīāļ™āļāļ§āđˆāļēāļ‚āļĩāļ”āļˆāļģāļāļąāļ” 2MB
415āļ™āļēāļĄāļŠāļāļļāļĨāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļĢāļđāļ›āđāļšāļšāđ„āļŸāļĨāđŒāđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļš

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ​

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
420āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļŦāļēāļĒāđ„āļ›āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āđ„āļĄāđˆāđ„āļ”āđ‰āļĢāļ°āļšāļļ
423āđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāđ„āļĄāđˆāļžāļšāđƒāļšāļŦāļ™āđ‰āļēāđƒāļ™āļ āļēāļž
440āđ„āļĄāđˆāļĄāļĩāđ„āļŸāļĨāđŒāđāļ™āļšāđ„āļĄāđˆāļĢāļ§āļĄāđ„āļŸāļĨāđŒāļ āļēāļž
441āļ āļēāļžāļĄāļēāļāđ€āļāļīāļ™āđ„āļ›āļĄāļĩāđ„āļŸāļĨāđŒāļ āļēāļžāļĄāļēāļāđ€āļāļīāļ™āđ„āļ›āļ—āļĩāđˆāđƒāļŦāđ‰āļĄāļē
442āļĢāļđāļ›āđāļšāļšāđ„āļĄāđˆāļĢāļ­āļ‡āļĢāļąāļšāļĢāļđāļ›āđāļšāļšāļ āļēāļžāđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ‚āļ­āļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒâ€‹

āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
560āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ„āļĄāđˆāļ§āđˆāļēāļ‡āļ„āļīāļ§āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ•āđ‡āļĄ
561āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļŦāļĄāļ”āđ€āļ§āļĨāļēāļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢāđƒāļŠāđ‰āđ€āļ§āļĨāļēāļ™āļēāļ™āđ€āļāļīāļ™āđ„āļ›
562āļ„āļģāļ‚āļ­āļŦāļĄāļ”āđ€āļ§āļĨāļēāļĢāļ­āļ„āļīāļ§āđ€āļ§āļĨāļēāļ™āļēāļ™āđ€āļāļīāļ™āđ„āļ›

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

āļŠāļ·āđˆāļ­āļšāļĢāļīāļāļēāļĢ AI APIāļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”IC āļ•āđˆāļ­āļ„āļģāļ‚āļ­On-Premise
āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļšāļŦāļ™āđ‰āļē (āļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļš)iapp_face_verification_v10.2 IC/Requestāļ•āļīāļ”āļ•āđˆāļ­
iapp_face_verification_v20.3 IC/Request

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

Python​

import requests

url = "https://api.iapp.co.th/face-verification/v2/face_compare"

# Use default score
payload={}

files=[
('file1',('{Your Image File Name 1}',open('{Your Image File Path 1}','rb'),'application/octet-stream')),
('file2',('{Your Image File Name 2}',open('{Your Image File Path 2}','rb'),'application/octet-stream'))
]
headers = {
'apikey': '{Your API Key}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

Javascript​

const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
let data = new FormData()
data.append("file1", fs.createReadStream("/Users/iapp/Downloads/facever_test1 (3).png"))
data.append("file2", fs.createReadStream("/Users/iapp/Downloads/facever_test2 (3).png"))

let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/face-verification/v2/face_compare",
headers: {
apikey: "YOUR_API_KEY",
...data.getHeaders(),
},
data: data,
}

axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data))
})
.catch((error) => {
console.log(error)
})

PHP​

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/face-verification/v2/face_compare',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file1'=> new CURLFILE('{Your Image File Name 1}'),'file2'=> new CURLFILE('{Your Image File Name 2}')),
CURLOPT_HTTPHEADER => array(
'apikey: {Your API Key}'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Swift​

let parameters = [
[
"key": "file1",
"src": "{Your Image File Name 1}",
"type": "file"
],
[
"key": "file2",
"src": "{Your Image File Name 2}",
"type": "file"
]] as [[String: Any]]

let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body


var request = URLRequest(url: URL(string: "https://api.iapp.co.th/face-verification/v2/face_compare")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}

task.resume()


Kotlin​

val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file1","{Your Image File Name 1}",
File("{Your Image File Path 1}").asRequestBody("application/octet-stream".toMediaType()))
.addFormDataPart("file2","{Your Image File Name 1}",
File("{Your Image File Path 1}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/face-verification/v2/face_compare")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build()
val response = client.newCall(request).execute()

Java​

OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file1","{Your Image File Name 1}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{Your Image File Path 1}")))
.addFormDataPart("file2","{Your Image File Name 2}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{Your Image File Path 2}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/face-verification/v2/face_compare")
.method("POST", body)
.addHeader("apikey", "{YOUR API KEY}")
.build();
Response response = client.newCall(request).execute();

Dart​

var headers = {
'apikey': '{YOUR API KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/face-verification/v2/face_compare'));
request.files.add(await http.MultipartFile.fromPath('file1', '{Your Image File Path 1}'));
request.files.add(await http.MultipartFile.fromPath('file2', '{Your Image File Path 2}'));
request.headers.addAll(headers);

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

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

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđāļĨāļ°āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”​

  • āļ‚āļ™āļēāļ”āđ„āļŸāļĨāđŒāļŠāļđāļ‡āļŠāļļāļ”: 2MB
  • āļ‚āļ™āļēāļ”āļ āļēāļžāļ‚āļąāđ‰āļ™āļ•āđˆāļģ: 600x400 āļžāļīāļāđ€āļ‹āļĨ
  • āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš: āđ„āļŸāļĨāđŒ JPG, JPEG, PNG, HEIC āđāļĨāļ° HEIF āđāļĨāļ°āļĢāļđāļ›āđāļšāļš BASE64
  • āļŦāļ™āļķāđˆāļ‡āđƒāļšāļŦāļ™āđ‰āļēāļ•āđˆāļ­āļ āļēāļžāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāđāļĨāļ°āļŦāļĨāļēāļĒāļ„āļ™

āđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāļ”āļĩāļ—āļĩāđˆāļŠāļļāļ”​

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

āļ„āļ§āļēāļĄāđāļĄāđˆāļ™āļĒāļģāđāļĨāļ°āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžâ€‹

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