1"use strict";(self.webpackChunkiapp_homepage_2025=self.webpackChunkiapp_homepage_2025||[]).push([["27406"],{20858:function(e,t,a){a.r(t),a.d(t,{metadata:()=>n,default:()=>L,frontMatter:()=>h,contentTitle:()=>v,toc:()=>g,assets:()=>p});var n=JSON.parse('{"id":"ekyc/thai-driver-license","title":"Thai Driver License OCR","description":"Extract structured data from Thai driver licenses: license number, names, dates, license type, and face detection.","source":"@site/docs/ekyc/thai-driver-license.md","sourceDirName":"ekyc","slug":"/ekyc/thai-driver-license","permalink":"/docs/ekyc/thai-driver-license","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_class_name":"sidebar-new-badge","sidebar_position":2,"description":"Extract structured data from Thai driver licenses: license number, names, dates, license type, and face detection.","keywords":["Thai driver license OCR","driving license OCR","Thai license API","eKYC Thailand","\u0E43\u0E1A\u0E02\u0E31\u0E1A\u0E02\u0E35\u0E48 OCR"]},"sidebar":"tutorialSidebar","previous":{"title":"Thai National ID Card OCR","permalink":"/docs/ekyc/thai-national-id-card"},"next":{"title":"Thai Bank Book OCR","permalink":"/docs/ekyc/book-bank"}}'),c=a(74848),d=a(84429),s=a(32661),o=a(62223),i=a(66568),r=a(52967),l=a(36833),u=a(97437),y=a(35139);let h={sidebar_class_name:"sidebar-new-badge",sidebar_position:2,description:"Extract structured data from Thai driver licenses: license number, names, dates, license type, and face detection.",keywords:["Thai driver license OCR","driving license OCR","Thai license API","eKYC Thailand","\u0E43\u0E1A\u0E02\u0E31\u0E1A\u0E02\u0E35\u0E48 OCR"]},v="Thai Driver License OCR",p={},g=[{value:"Live Demo",id:"live-demo",level:2},{value:"Try the SDK (Live Camera)",id:"try-the-sdk-live-camera",level:2},{value:"Quick Start",id:"quick-start",level:2},{value:"Endpoints and Pricing",id:"endpoints-and-pricing",level:2},{value:"Performance",id:"performance",level:2},{value:"Accuracy",id:"accuracy",level:2},{value:"Data Security and Compliance",id:"data-security-and-compliance",level:2},{value:"Technical Reference",id:"technical-reference",level:2},{value:"Request",id:"request",level:3},{value:"Response",id:"response",level:3},{value:"Response Fields",id:"response-fields",level:3},{value:"Code Examples",id:"code-examples",level:3},{value:"Response Codes",id:"response-codes",level:3},{value:"Limitations",id:"limitations",level:3},{value:"Changelog",id:"changelog",level:3}];function m(e){let t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,d.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(t.header,{children:(0,c.jsx)(t.h1,{id:"thai-driver-license-ocr",children:"Thai Driver License OCR"})}),"\n",(0,c.jsxs)("div",{className:"api-info-box",style:{backgroundColor:"#f0f9ff",padding:"16px",borderRadius:"12px",marginBottom:"16px",border:"1px solid #bae6fd"},children:[(0,c.jsx)("div",{className:"api-info-price-row",style:{fontSize:"1.5rem",fontWeight:"bold",color:"#0c4a6e",marginBottom:"8px"},children:(0,c.jsxs)("a",{href:"#endpoints-and-pricing",style:{textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-coins",style:{marginRight:"8px",color:"#0284c7"}}),(0,c.jsx)("span",{className:"api-info-price",style:{color:"#0284c7"},children:"1.25 IC"}),(0,c.jsx)("span",{className:"api-info-unit",style:{fontSize:"1rem",fontWeight:"normal",color:"#475569",marginLeft:"8px"},children:"per page"})]})}),(0,c.jsxs)("div",{className:"api-info-meta",style:{fontSize:"0.8rem",color:"#64748b",display:"flex",flexWrap:"wrap",gap:"12px",alignItems:"center"},children:[(0,c.jsx)(l.A,{}),(0,c.jsx)("a",{href:"#changelog",style:{color:"inherit",textDecoration:"none"},children:(0,c.jsxs)("strong",{children:[(0,c.jsx)("i",{className:"fa-solid fa-tag",style:{marginRight:"4px"}})," v1.1.3-20260824"]})}),(0,c.jsxs)("a",{href:"https://status.iapp.co.th",target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-circle-check",style:{marginRight:"4px",color:"#22c55e"}})," Active"]}),(0,c.jsxs)("a",{href:"#changelog",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-calendar",style:{marginRight:"4px"}})," Since Dec 2022"]}),(0,c.jsxs)("a",{href:"#changelog",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-clock-rotate-left",style:{marginRight:"4px"}})," Updated 24 Aug 2026"]}),(0,c.jsxs)("a",{href:"#performance",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-gauge-high",style:{marginRight:"4px"}})," 25,000 cards/hour"]}),(0,c.jsxs)("a",{href:"#accuracy",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-bullseye",style:{marginRight:"4px"}})," 95.14% accuracy"]}),(0,c.jsxs)("a",{href:"/whitepapers/thai-driving-license-ocr-benchmark-2026.pdf",target:"_blank",rel:"noopener noreferrer",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-file-pdf",style:{marginRight:"4px"}})," Whitepaper (PDF)"]}),(0,c.jsxs)("a",{href:"#technical-reference",style:{color:"inherit",textDecoration:"none"},children:[(0,c.jsx)("i",{className:"fa-solid fa-location-dot",style:{marginRight:"4px"}})," POST ",(0,c.jsx)("code",{children:"/v3/store/ekyc/thai-driver-license"})]})]})]}),"\n",(0,c.jsx)(t.admonition,{title:"Mobile & Web SDK available",type:"tip",children:(0,c.jsxs)(t.p,{children:["Skip the camera work \u2014 our free open-source ",(0,c.jsx)(t.a,{href:"/docs/ekyc/sdk/getting-started",children:"eKYC SDK"})," (Web, Flutter, iOS, Android & React Native) auto-captures documents and faces and calls this API for you. ",(0,c.jsx)(t.a,{href:"https://github.com/iapp-technology/iapp-ekyc-sdk",children:"View on GitHub"}),"."]})}),"\n",(0,c.jsx)(u.A,{}),"\n",(0,c.jsxs)(t.p,{children:["The Thai Driver License OCR API extracts structured data from photographs of Thai driver licenses: the license number, names and dates in both Thai and English, the license type, and detection of the face photo, flag, and signature. The production service processes a card in 0.3 seconds (median) and sustains 25,000 cards per hour. The response contract has been stable across every upgrade \u2014 no field has ever been removed or retyped; see ",(0,c.jsx)(t.a,{href:"#accuracy",children:"Accuracy"}),"."]}),"\n",(0,c.jsx)(t.h2,{id:"live-demo",children:"Live Demo"}),"\n",(0,c.jsx)(t.p,{children:"Upload a Thai driver license, or use the synthetic specimen below."}),"\n",(0,c.jsx)(i.A,{endpointUrl:"https://api.iapp.co.th/v3/store/ekyc/thai-driver-license",requireUpload:{total:1,label:["Upload Thai driver license"]},submitTitle:"Process Thai driver license",exampleImages:{title:"Example images (click to try)",image:["/img/api/thai_driver_license_example.png"]},customDemoResultView:e=>(0,r.A)(e,"thai-driver-license-ocr")}),"\n",(0,c.jsx)(t.h2,{id:"try-the-sdk-live-camera",children:"Try the SDK (Live Camera)"}),"\n",(0,c.jsxs)(t.p,{children:["Prefer not to upload a file? The free open-source ",(0,c.jsx)(t.a,{href:"/docs/ekyc/sdk/getting-started",children:"iApp eKYC Web SDK"})," captures the license automatically from your camera \u2014 it detects the card boundary, waits for a sharp stable frame, perspective-corrects the image, and submits it to this API. See more flows on the ",(0,c.jsx)(t.a,{href:"/ekyc-demo",children:"full SDK live demo page"}),"."]}),"\n",(0,c.jsx)(y.A,{flow:"documentCapture",documentType:"thaiDriverLicense",title:"Thai driver license (auto-capture)"}
1),"\n",(0,c.jsx)(t.h2,{id:"quick-start",children:"Quick Start"}),"\n",(0,c.jsxs)(t.p,{children:["You need an API key from the ",(0,c.jsx)(t.a,{href:"/control/api-keys",children:"API Key Management"})," page. Send the image as ",(0,c.jsx)(t.code,{children:"multipart/form-data"}),":"]}),"\n",(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-bash",children:'curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-driver-license \\\n -H "apikey: YOUR_API_KEY" \\\n -F "file=@driver_license.jpg"\n'})}),"\n",(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-json",children:'{\n "en_license_no": "00000000",\n "en_name": "Mr. iApp Technology",\n "en_type": "Private Car Driving License",\n "en_expiry": "26 March 2024",\n "id_no": "1111111111111",\n "face": "Detected",\n "message": "Success"\n}\n'})}),"\n",(0,c.jsxs)(t.p,{children:["The full response is in the ",(0,c.jsx)(t.a,{href:"#technical-reference",children:"Technical Reference"}),"."]}),"\n",(0,c.jsx)(t.h2,{id:"endpoints-and-pricing",children:"Endpoints and Pricing"}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Endpoint"}),(0,c.jsx)(t.th,{children:"Output"}),(0,c.jsx)(t.th,{children:"Price"})]})}),(0,c.jsx)(t.tbody,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"POST /v3/store/ekyc/thai-driver-license"})}),(0,c.jsx)(t.td,{children:"JSON with license fields in Thai and English, plus face, flag, and signature detection"}),(0,c.jsx)(t.td,{children:"1.25 IC per page"})]})})]}),"\n",(0,c.jsxs)(t.p,{children:["The legacy path ",(0,c.jsx)(t.code,{children:"/thai-driver-license-ocr"})," remains supported at the same price. For on-premise deployment, see ",(0,c.jsx)(t.a,{href:"#data-security-and-compliance",children:"Data Security"}),"."]}),"\n",(0,c.jsx)(t.h2,{id:"performance",children:"Performance"}),"\n",(0,c.jsx)(t.p,{children:"Measured on the production service, August 2026."}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Metric"}),(0,c.jsx)(t.th,{children:"Value"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Median processing time"}),(0,c.jsx)(t.td,{children:"0.3 s per card"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Sustained throughput"}),(0,c.jsx)(t.td,{children:"6.9 cards per second (25,000 cards per hour)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Maximum file size"}),(0,c.jsx)(t.td,{children:"6 MB"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Supported input formats"}),(0,c.jsx)(t.td,{children:"JPEG, JPG, PNG, GIF, HEIC, HEIF (iPhone photos)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Coverage"}),(0,c.jsx)(t.td,{children:"Front side only"})]})]})]}),"\n",(0,c.jsx)(t.h2,{id:"accuracy",children:"Accuracy"}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Metric"}),(0,c.jsx)(t.th,{children:"Result"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Character-level accuracy (overall)"}),(0,c.jsx)(t.td,{children:"95.14%"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Face detection"}),(0,c.jsx)(t.td,{children:"100%"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"License number"}),(0,c.jsx)(t.td,{children:"97.37%"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Name (English)"}),(0,c.jsx)(t.td,{children:"99.13%"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"Name (Thai)"}),(0,c.jsx)(t.td,{children:"95.62%"})]})]})]}),"\n",(0,c.jsx)(t.p,{children:"The recognition engine was upgraded in August 2026 and audited field by field against the previous engine on identical license images: agreement across all 25 response fields was 99.65 percent, every adjudicated difference favored the new engine (date formatting and Thai word segmentation, verified against the physical cards), and no field was removed or changed type \u2014 existing clients need no modification. The audit method and results are published in the whitepaper:"}),"\n",(0,c.jsx)(t.p,{children:(0,c.jsx)(t.a,{href:"pathname:///whitepapers/thai-driving-license-ocr-benchmark-2026.pdf",children:"Download the engine audit whitepaper (PDF)"})}),"\n",(0,c.jsx)(t.h2,{id:"data-security-and-compliance",children:"Data Security and Compliance"}),"\n",(0,c.jsxs)(t.ul,{children:["\n",(0,c.jsx)(t.li,{children:"The service is GDPR and PDPA compliant."}),"\n",(0,c.jsx)(t.li,{children:"Uploaded images are processed in memory and are not retained after the response is returned."}),"\n",(0,c.jsxs)(t.li,{children:["A fully self-contained on-premise deployment is available, in which no license data leaves your infrastru
1cture. ",(0,c.jsx)(t.a,{href:"/contact-us",children:"Contact us"})," for details."]}),"\n"]}),"\n",(0,c.jsx)(t.h2,{id:"technical-reference",children:"Technical Reference"}),"\n",(0,c.jsx)(t.h3,{id:"request",children:"Request"}),"\n",(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:"POST"})," with ",(0,c.jsx)(t.code,{children:"multipart/form-data"})," and the ",(0,c.jsx)(t.code,{children:"apikey"})," header."]}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Parameter"}),(0,c.jsx)(t.th,{children:"Required"}),(0,c.jsx)(t.th,{children:"Description"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"file"})}),(0,c.jsx)(t.td,{children:"Yes"}),(0,c.jsx)(t.td,{children:"Thai driver license image (front side)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"fields"})}),(0,c.jsx)(t.td,{children:"No"}),(0,c.jsxs)(t.td,{children:["Set to ",(0,c.jsx)(t.code,{children:"photo"})," to also return ",(0,c.jsx)(t.code,{children:"face_photo_base64"}),", the holder's face crop"]})]})]})]}),"\n",(0,c.jsx)(t.h3,{id:"response",children:"Response"}),"\n",(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-json",children:'{\n "driving_license_type1": "Detected",\n "en_country": "Kingdom of Thailand",\n "en_dob": "1 March 1987",\n "en_expiry": "26 March 2024",\n "en_issue": "18 May 2006",\n "en_license_no": "00000000",\n "en_name": "Mr. iApp Technology",\n "en_type": "Private Car Driving License",\n "face": "Detected",\n "file_name": "driver_license.jpg",\n "flag": "Detected",\n "id_no": "1111111111111",\n "id_no_checksum_valid": true,\n "inference": "0.523",\n "message": "Success",\n "registrar": "\u0E19\u0E32\u0E22\u0E17\u0E30\u0E40\u0E1A\u0E35\u0E22\u0E19\u0E08\u0E31\u0E07\u0E2B\u0E27\u0E31\u0E14 \u0E01\u0E23\u0E38\u0E07\u0E40\u0E17\u0E1E\u0E21\u0E2B\u0E32\u0E19\u0E04\u0E23 Bangkok",\n "sign": "Detected",\n "status_code": 200,\n "text_is_white": "Detected",\n "th_country": "\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28\u0E44\u0E17\u0E22",\n "th_dob": "1 \u0E21\u0E35\u0E19\u0E32\u0E04\u0E21 2530",\n "th_expiry": "26 \u0E21\u0E35\u0E19\u0E32\u0E04\u0E21 2567",\n "th_issue": "1 \u0E21\u0E01\u0E23\u0E32\u0E04\u0E21 2562",\n "th_license_no": "000000000",\n "th_name": "\u0E19\u0E32\u0E22 \u0E44\u0E2D\u0E41\u0E2D\u0E1E\u0E1E\u0E4C \u0E40\u0E17\u0E04\u0E42\u0E19\u0E42\u0E25\u0E22\u0E35",\n "th_type": "\u0E43\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15\u0E34\u0E02\u0E31\u0E1A\u0E23\u0E16\u0E22\u0E19\u0E15\u0E4C\u0E2A\u0E48\u0E27\u0E19\u0E1A\u0E38\u0E04\u0E04\u0E25"\n}\n'})}),"\n",(0,c.jsx)(t.h3,{id:"response-fields",children:"Response Fields"}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Field"}),(0,c.jsx)(t.th,{children:"Type"}),(0,c.jsx)(t.th,{children:"Description"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_country"})," / ",(0,c.jsx)(t.code,{children:"th_country"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Country name (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_name"})," / ",(0,c.jsx)(t.code,{children:"th_name"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Full name (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_dob"})," / ",(0,c.jsx)(t.code,{children:"th_dob"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Date of birth (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_issue"})," / ",(0,c.jsx)(t.code,{children:"th_issue"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Issue date (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_expiry"})," / ",(0,c.jsx)(t.code,{children:"th_expiry"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Expiry date (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_license_no"})," / ",(0,c.jsx)(t.code,{children:"th_license_no"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"License number (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"en_type"})," / ",(0,c.jsx)(t.code,{children:"th_type"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"License type (English / Thai)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"id_no"})}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"National ID number"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"id_no_checksum_valid"})}),(0,c.jsx)(t.td,{children:"Boolean"}),(0,c.jsxs)(t.td,{children:["Whether ",(0,c.jsx)(t.code,{children:"id_no"})," passes its 13th-digit checksum. Advisory: the request succeeds either way; ",(0,c.jsx)(t.code,{children:"false"})," on an otherwise good response usually means the image is too low-contrast or small, and it is also ",(0,c.jsx)(t.code,{children:"false"})," when no ID was found"]}
1)]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"face_photo_base64"})}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsxs)(t.td,{children:["The holder's face crop as Base64. Returned only with ",(0,c.jsx)(t.code,{children:"fields=photo"})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"registrar"})}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Issuing registrar"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"face"})," / ",(0,c.jsx)(t.code,{children:"flag"})," / ",(0,c.jsx)(t.code,{children:"sign"})," / ",(0,c.jsx)(t.code,{children:"text_is_white"})]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Detection status of the face photo, flag, signature, and white-text security feature"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"driving_license_type1"})," ..."]}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Detected license class markers"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:"inference"})}),(0,c.jsx)(t.td,{children:"String"}),(0,c.jsx)(t.td,{children:"Model inference time (seconds)"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:"message"})," / ",(0,c.jsx)(t.code,{children:"status_code"})]}),(0,c.jsx)(t.td,{children:"String / Integer"}),(0,c.jsx)(t.td,{children:"Result message and status code"})]})]})]}),"\n",(0,c.jsx)(t.h3,{id:"code-examples",children:"Code Examples"}),"\n",(0,c.jsxs)(s.A,{groupId:"lang",children:[(0,c.jsx)(o.A,{value:"curl",label:"cURL",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-bash",children:'curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-driver-license \\\n -H "apikey: YOUR_API_KEY" \\\n -F "file=@driver_license.jpg"\n'})})}),(0,c.jsx)(o.A,{value:"python",label:"Python",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-python",children:'import requests\n\nurl = "https://api.iapp.co.th/v3/store/ekyc/thai-driver-license"\nheaders = {"apikey": "YOUR_API_KEY"}\nfiles = {"file": open("driver_license.jpg", "rb")}\n\nresponse = requests.post(url, headers=headers, files=files)\nprint(response.json())\n'})})}),(0,c.jsx)(o.A,{value:"js",label:"JavaScript",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-javascript",children:'const axios = require("axios");\nconst FormData = require("form-data");\nconst fs = require("fs");\n\nconst data = new FormData();\ndata.append("file", fs.createReadStream("driver_license.jpg"));\n\naxios.post("https://api.iapp.co.th/v3/store/ekyc/thai-driver-license", data, {\n headers: { apikey: "YOUR_API_KEY", ...data.getHeaders() },\n})\n .then((response) => console.log(response.data))\n .catch((error) => console.log(error));\n'})})}),(0,c.jsx)(o.A,{value:"php",label:"PHP",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-php",children:"<?php\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => 'https://api.iapp.co.th/v3/store/ekyc/thai-driver-license',\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_POST => true,\n CURLOPT_POSTFIELDS => array(\n 'file' => new CURLFILE('driver_license.jpg')\n ),\n CURLOPT_HTTPHEADER => array(\n 'apikey: YOUR_API_KEY'\n ),\n));\n\n$response = curl_exec($curl);\ncurl_close($curl);\necho $response;\n?>\n"})})}),(0,c.jsx)(o.A,{value:"swift",label:"Swift",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-swift",children:'import Foundation\n\nlet url = URL(string: "https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")!\nvar request = URLRequest(url: url)\nrequest.httpMethod = "POST"\nrequest.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")\n\nlet boundary = "Boundary-\\(UUID().uuidString)"\nrequest.setValue("multipart/form-data; boundary=\\(boundary)", forHTTPHeaderField: "Content-Type")\n\nvar body = Data()\nbody.append("--\\(boundary)\\r\\n".data(using: .utf8)!)\nbody.append("Content-Disposition: form-data; name=\\"file\\"; filename=\\"driver_license.jpg\\"\\r\\n".data(using: .utf8)!)\nbody.append("Content-Type: image/jpeg\\r\\n\\r\\n".data(using: .utf8)!)\nif let fileData = try? Data(contentsOf: URL(fileURLWithPath: "driver_license.jpg")) {\n body.append(fileData)\n}\nbody.append("\\r\\n--\\(boundary)--\\r\\n".data(using: .utf8)!)\nrequest.httpBody = body\n\nURLSession.shared.dataTask(with: request) { data, response, error in\n if let data = data {\n print(String(data: data, encoding: .utf8)!)\n }\n}.resume()\n'})})}),(0,c.jsx)(o.A,{value:"kotlin",label:"Kotlin",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-kotlin",children:'import okhttp3.*\nimport okhttp3.MediaType.Companion.toMediaTypeOrNull\nimport okhttp3.RequestBody.Companion.asRequestBody\nimport java.io.File\n\nval client = OkHttpClient()\nval file = File("driver_license.jpg")\n\nval requestBody = MultipartBody.Builder()\n .setType(MultipartBody.FORM)\n .addFormDataPart("file", file.name, file.asRequestBody("image/jpeg".toMediaTypeOrNull()))\n .build()\n\nval request = Request.Builder()\n .url("https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")\n .addHeader("apikey", "YOUR_API_KEY")\n .post(requestBody)\n .build()\n\nclient.newCall(request).execute().use { response ->\n println(response.body?.string())\n}\n'})})}),(0,c.jsx)(o.A,{value:"java",label:"Java",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-java",children:'import okhttp3.*;\nimport java.io.File;\n\nOkHttpClient client = new OkHttpClient();\nFile file = new File("driver_license.jpg");\n\nRequestBody requestBody = new MultipartBody.Builder()\n .setType(MultipartBody.FORM)\n .addFormDataPart("file", file.getName(),\n RequestBody.create(MediaType.parse("image/jpeg"), file))\n .build();\n\nRequest request = new Request.Builder()\n .url("https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")\n .addHeader("apikey", "YOUR_API_KEY")\n .post(requestBody)\n .build();\n\ntry (Response response = client.newCall(request).execute()) {\n System.out.println(response.body().string());\n}\n'})})}),(0,c.jsx)(o.A,{value:"dart",label:"Dart",children:(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:"language-dart",children:"import 'package:http/http.dart' as http;
1\n\nvar request = http.MultipartRequest(\n 'POST',\n Uri.parse('https://api.iapp.co.th/v3/store/ekyc/thai-driver-license'),\n);\nrequest.files.add(await http.MultipartFile.fromPath('file', 'driver_license.jpg'));\nrequest.headers.addAll({'apikey': 'YOUR_API_KEY'});\n\nvar response = await request.send();\nprint(await response.stream.bytesToString());\n"})})})]}),"\n",(0,c.jsx)(t.h3,{id:"response-codes",children:"Response Codes"}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Status Code"}),(0,c.jsx)(t.th,{children:"Description"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"200"}),(0,c.jsx)(t.td,{children:"Success"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"415"}),(0,c.jsx)(t.td,{children:"Unsupported file extension"})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"461"}),(0,c.jsxs)(t.td,{children:["No ",(0,c.jsx)(t.code,{children:"file"})," part in the request"]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"462"}),(0,c.jsx)(t.td,{children:"More than one file attached"})]})]})]}),"\n",(0,c.jsx)(t.h3,{id:"limitations",children:"Limitations"}),"\n",(0,c.jsxs)(t.ul,{children:["\n",(0,c.jsx)(t.li,{children:"Front side only."}),"\n",(0,c.jsx)(t.li,{children:"Files larger than 6 MB are rejected; supported formats are JPEG, JPG, PNG, GIF, HEIC, and HEIF."}),"\n",(0,c.jsxs)(t.li,{children:["Check the ",(0,c.jsx)(t.code,{children:"inference"})," score and ",(0,c.jsx)(t.code,{children:"message"})," in the response, and validate the license number format on your side."]}),"\n"]}),"\n",(0,c.jsx)(t.h3,{id:"changelog",children:"Changelog"}),"\n",(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:"Version"}),(0,c.jsx)(t.th,{children:"Date"}),(0,c.jsx)(t.th,{children:"Changes"})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"v1.1.3-20260824"}),(0,c.jsx)(t.td,{children:"24 Aug 2026"}),(0,c.jsxs)(t.td,{children:["HEIC/HEIF (iPhone) and GIF input support. New advisory field ",(0,c.jsx)(t.code,{children:"id_no_checksum_valid"})," validating the national ID check digit. Restored ",(0,c.jsx)(t.code,{children:"face_photo_base64"})," via ",(0,c.jsx)(t.code,{children:"fields=photo"}),". Eliminated intermittent errors under concurrent load."]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"v1.1.2-20260823"}),(0,c.jsx)(t.td,{children:"23 Aug 2026"}),(0,c.jsx)(t.td,{children:"Upgraded recognition engine. Field-by-field audit against the previous engine on identical images: 99.65% agreement across all 25 response fields, with every adjudicated difference favoring the new engine; response contract unchanged. Median processing time 0.3 s per card. Fully self-contained on-premise deployment available."})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"v1.1"}),(0,c.jsx)(t.td,{children:"Jan 2023"}),(0,c.jsx)(t.td,{children:"Added face photo extraction; character-level accuracy 95.14%."})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:"v1.0"}),(0,c.jsx)(t.td,{children:"Dec 2022"}),(0,c.jsx)(t.td,{children:"Initial release."})]})]})]})]})}function L(e={}){let{wrapper:t}={...(0,d.R)(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(m,{...e})}):m(e)}},30345:function(e,t,a){a.d(t,{A:()=>n});let n={wrap:"wrap_xwyu",thumb:"thumb_rjci",expand:"expand_Rwwo",caption:"caption_yfZT",overlay:"overlay_RRCi",full:"full_kUJm",close:"close_3o22"}},36833:function(e,t,a){a.d(t,{A:()=>o});var n=a(96540),c=a(56347),d=a(74848);let s=null;try{s=a(22958)}catch(e){console.warn("API stats file not found")}function o({docPath:e,showIcon:t=!0}){let a=(0,c.zy)(),[o,i]=(0,n.useState)(null),r=e||a.pathname.replace(/\/$/,"");return((0,n.useEffect)(()=>{if(s&&s.stats){let e=s.stats[r];if(!e){let t=r.replace(/^\/(th|zh-CN)/,"");e=s.stats[t]}e&&i({formatted:e.formatted,fullFormatted:e.fullFormatted,count:e.count,updatedAt:s.generatedAtFormatted})}},[r]),o)?(0,d.jsxs)("span",{title:`${o.fullFormatted} total API calls (Updated: ${o.updatedAt})`,style:{cursor:"help",textDecoration:"underline dotted",textDecorationColor:"#94a3b8",textUnderlineOffset:"2px"},children:[t&&(0,d.jsx)("span",{style:{marginRight:"4px"},children:"\u{1F4CA}"}),(0,d.jsx)("strong",{children:o.formatted})," calls"]}):null}},29574:function(e,t,a){a.d(t,{Z:()=>y});var n=a(96540),c=a(96990),d=a(33717),s=a(51003);let o="container_YZJz",i="input_GqCS",r="hint_xP6G",l="link_Sydx";var u=a(74848);
1let y=({value:e,onChange:t,className:a})=>{let{user:y}=(0,d.A)(),[h,v]=(0,n.useState)([]),[p,g]=(0,n.useState)(!1),[m,L]=(0,n.useState)(!1),[x,j]=(0,n.useState)(e),f=(0,c.Ay)("/login"),D=(0,c.Ay)("/register"),b=(0,c.Ay)("/control/api-keys");(0,n.useEffect)(()=>{y&&k()},[y]),(0,n.useEffect)(()=>{j(e)},[e]);let k=async()=>{try{g(!0);let a=await s.FH.getApiKeys();v(a.keys||[]),a.keys&&a.keys.length>0&&!e&&t(a.keys[0].key)}catch(e){console.error("Failed to fetch API keys:",e)}finally{g(!1)}};return y?p?(0,u.jsxs)("div",{className:`${o} ${a||""}`,children:[(0,u.jsx)("label",{children:"API Key"}),(0,u.jsx)("p",{className:"loading_bNBf",children:"Loading your API keys..."})]}):(0,u.jsxs)("div",{className:`${o} ${a||""}`,children:[(0,u.jsx)("label",{children:"API Key"}),0===h.length?(0,u.jsxs)("div",{className:"noKeys_kkUN",children:[(0,u.jsx)("p",{children:"You don't have any API keys yet."}),(0,u.jsx)("a",{href:b,className:"createButton_d6IZ",children:"Create Your First API Key"})]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)("select",{value:m?"custom":e,onChange:e=>{let a=e.target.value;"custom"===a?(L(!0),t(x)):(L(!1),t(a))},className:"select_Aqio",children:[h.map(e=>(0,u.jsxs)("option",{value:e.key,children:[e.name," - ",e.key]},e.id)),(0,u.jsx)("option",{value:"custom",children:"Custom / Other Key"})]}),m&&(0,u.jsx)("div",{className:"customInputContainer_jfjn",children:(0,u.jsx)("input",{type:"text",value:x,onChange:e=>{let a=e.target.value;j(a),t(a)},placeholder:"Enter custom API key",className:i})}),(0,u.jsx)("p",{className:r,children:(0,u.jsx)("a",{href:b,className:l,children:"Manage your API keys"})})]})]}):(0,u.jsxs)("div",{className:`${o} ${a||""}`,children:[(0,u.jsx)("label",{children:"API Key"}),(0,u.jsx)("input",{type:"text",value:e,onChange:e=>t(e.target.value),placeholder:"Enter your API key",className:i}),(0,u.jsxs)("p",{className:r,children:[(0,u.jsx)("a",{href:f,className:l,children:"Log in to use your API keys"})," or ",(0,u.jsx)("a",{href:D,className:l,children:"Create an account"})]})]})}},97437:function(e,t,a){a.d(t,{A:()=>g});var n=a(96540),c=a(56347),d=a(68939),s=a(45721),o=a(69107),i=a(77984),r=a(23495),l=a(43136),u=a(18970),y=a(98207),h=a(39581),v=a(74848);let p=null;try{p=a(22958)}catch(e){console.warn("API stats file not found")}function g({docPath:e,showTitle:t=!0}){let a=(0,c.zy)(),[g,m]=(0,n.useState)(null),L=e||a.pathname.replace(/\/$/,"");return((0,n.useEffect)(()=>{if(p&&p.performance){let e=p.performance[L];if(!e){let t=L.replace(/^\/(th|zh-CN)/,"");e=p.performance[t]}if(e&&e.throughput&&e.throughput.length>0){let t=new Date;t.setUTCHours(0,0,0,0);let a=t.toISOString().split("T")[0],n=e.throughput.filter(e=>e.date<a),c=[];e.latency&&e.latency.length>0&&(c=e.latency.filter(e=>e.date<a).map(e=>{let t=Math.max(0,e.avgLatency-e.stdDevLatency),a=e.avgLatency+e.stdDevLatency;return{date:e.date,avgLatency:e.avgLatency,stdDevLatency:e.stdDevLatency,upperBound:a,lowerBound:t,bandHeight:a-t}})),m({throughput:n,latency:c,avgLatency:e.avgLatency,maxLatency:e.maxLatency,minLatency:e.minLatency})}}},[L]),!g||(g.throughput.length>0?g.throughput.reduce((e,t)=>e+t.count,0)/g.throughput.length:0)<100)?null:(0,v.jsx)("div",{style:{marginTop:"24px",marginBottom:"24px"},children:(0,v.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(400px, 1fr))",gap:"24px"},children:[(0,v.jsxs)("div",{style:{border:"1px solid #e5e7eb",borderRadius:"12px",padding:"16px",backgroundColor:"#f9fafb"},children:[(0,v.jsx)("h4",{style:{marginTop:0,marginBottom:"12px",fontSize:"0.95rem",fontWeight:"600",color:"#374151"},children:"Throughput (Number of Requests)"}),(0,v.jsx)(d.u,{width:"100%",height:250,children:(0,v.jsxs)(s.b,{data:g.throughput,children:[(0,v.jsx)(o.d,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),(0,v.jsx)(i.W,{dataKey:"date",tick:{fontSize:12},interval:Math.floor(g.throughput.length/6),stroke:"#9ca3af"}),(0,v.jsx)(r.h,{tick:{fontSize:12},stroke:"#9ca3af"}),(0,v.jsx)(l.m,{contentStyle:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},formatter:e=>
1[e.toLocaleString(),"Requests"],labelFormatter:e=>`Date: ${e}`}),(0,v.jsx)(u.N,{type:"monotone",dataKey:"count",stroke:"#3b82f6",dot:!1,strokeWidth:2,isAnimationActive:!1})]})}),(0,v.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"4px"},children:[(0,v.jsx)("p",{style:{margin:0,fontSize:"0.5rem",color:"#9ca3af"},children:"\u{1F4C8} Daily request volume over the last 30 days"}),(0,v.jsxs)("p",{style:{margin:0,fontSize:"0.75rem",color:"#3b82f6",fontWeight:"600"},children:["Avg: ",Math.round(g.throughput.reduce((e,t)=>e+t.count,0)/g.throughput.length).toLocaleString(),"/day"]})]})]}),(0,v.jsxs)("div",{style:{border:"1px solid #e5e7eb",borderRadius:"12px",padding:"16px",backgroundColor:"#f9fafb"},children:[(0,v.jsx)("h4",{style:{marginTop:0,marginBottom:"12px",fontSize:"0.95rem",fontWeight:"600",color:"#374151"},children:"Latency (Response time in milliseconds)"}),g.latency&&g.latency.length>0?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(d.u,{width:"100%",height:250,children:(0,v.jsxs)(y.X,{data:g.latency,children:[(0,v.jsx)(o.d,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),(0,v.jsx)(i.W,{dataKey:"date",tick:{fontSize:12},interval:Math.floor(g.latency.length/6),stroke:"#9ca3af"}),(0,v.jsx)(r.h,{tick:{fontSize:12},stroke:"#9ca3af"}),(0,v.jsx)(l.m,{contentStyle:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"8px",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},content:({active:e,payload:t,label:a})=>{if(e&&t&&t.length){let e=t[0].payload;return(0,v.jsxs)("div",{style:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"8px",padding:"8px",boxShadow:"0 4px 6px rgba(0, 0, 0, 0.1)"},children:[(0,v.jsx)("p",{style:{margin:"0 0 4px 0",fontSize:"0.85rem",color:"#374151"},children:(0,v.jsxs)("strong",{children:["Date: ",e.date]})}),(0,v.jsxs)("p",{style:{margin:"2px 0",fontSize:"0.85rem",color:"#f59e0b"},children:["Mean: ",e.avgLatency,"ms"]}),(0,v.jsxs)("p",{style:{margin:"2px 0",fontSize:"0.85rem",color:"#94a3b8"},children:["\xb1Std Dev: ",e.stdDevLatency,"ms"]}),(0,v.jsxs)("p",{style:{margin:"2px 0",fontSize:"0.85rem",color:"#6b7280"},children:["Range: ",e.lowerBound,"ms - ",e.upperBound,"ms"]})]})}return null}}),(0,v.jsx)(h.Gk,{type:"monotone",dataKey:"lowerBound",stackId:"band",stroke:"none",fill:"transparent",isAnimationActive:!1}),(0,v.jsx)(h.Gk,{type:"monotone",dataKey:"bandHeight",stackId:"band",stroke:"none",fill:"#c4b5fd",fillOpacity:.5,isAnimationActive:!1}),(0,v.jsx)(u.N,{type:"monotone",dataKey:"avgLatency",stroke:"#7c3aed",dot:!1,strokeWidth:2,isAnimationActive:!1})]})}),(0,v.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"4px"},children:[(0,v.jsx)("p",{style:{margin:0,fontSize:"0.5rem",color:"#9ca3af"},children:"\u23F1\uFE0F Mean response time with \xb11 standard deviation band from last 30 days"}),(0,v.jsxs)("p",{style:{margin:0,fontSize:"0.75rem",color:"#7c3aed",fontWeight:"600"},children:["Avg: ",Math.round(g.latency.reduce((e,t)=>e+t.avgLatency,0)/g.latency.length).toLocaleString(),"ms"]})]})]}):(0,v.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px",height:"250px",justifyContent:"center",paddingBottom:"12px"},children:[(0,v.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,v.jsx)("div",{style:{width:"12px",height:"12px",backgroundColor:"#10b981",borderRadius:"2px"}}),(0,v.jsx)("span",{style:{fontSize:"0.9rem",color:"#374151"},children:"Minimum:"}),(0,v.jsxs)("strong",{style:{color:"#10b981"},children:[g.minLatency,"ms"]})]}),(0,v.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,v.jsx)("div",{style:{width:"12px",height:"12px",backgroundColor:"#f59e0b",borderRadius:"2px"}}),(0,v.jsx)("span",{style:{fontSize:"0.9rem",color:"#374151"},children:"Average:"}),(0,v.jsxs)("strong",{style:{color:"#f59e0b"},children:[g.avgLatency,"ms"]})]}),(0,v.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,v.jsx)("div",{style:{width:"12px",height:"12px",backgroundColor:"#ef4444",borderRadius:"2px"}}),(0,v.jsx)("span",{style:{fontSize:"0.9rem",color:"#374151"},children:"Maximum:"}),(0,v.jsxs)("strong",{style:{color:"#ef4444"},children:[g.maxLatency,"ms"]})]}),(0,v.jsx)("p",{style:{margin:"4px 0 0 0",fontSize:"0.5rem",color:"#9ca3af"},children:"\u23F1\uFE0F Response time statistics from last 30 days"})]})]})]})})}},52967:function(e,t,a){a.d(t,{A:()=>k}),a(96540);let n="tableContainer_ahan",c="cvSection_Slax",d="cvListRed_CWeF",s="cvListBlue_jKbE",o="keywordTags_CDXc",i="keywordTag_kYnu";var r=a(56400);let l=[{key:"id_number",title:"ID Number"},{key:"th_init",title:"Title (Thai)"},{key:"th_name",title:"Name (Thai)"},{key:"th_lname",title:"Last name (Thai)"},{key:"en_init",title:"Title (Eng)"},{key:"en_name",title:"Name (Eng)"},{key:"en_lname",title:"Last name (Eng)"},{key:"gender",title:"Gender"},{key:"th_dob",title:"Birthday (Thai)"},{key:"en_dob",title:"Birthdate (Eng)"},{key:"address",title:"Address"}],u=[{key:"th_name",title:"Name (Thai)"},{key:"th_dob",title:"Birthday (Thai)"},{key:"th_type",title:"Type (Thai)"}
1,{key:"th_license_no",title:"License No (Thai)"},{key:"th_country",title:"Country (Thai)"},{key:"en_name",title:"Name (Eng)"},{key:"en_dob",title:"Birthday (Eng)"},{key:"en_type",title:"Type (Eng)"},{key:"en_license_no",title:"License No (Eng)"},{key:"en_country",title:"Country (Eng)"}],y=[{key:"names",title:"First Name"},{key:"surname",title:"Last Name"},{key:"expiration_date",title:"Expiry Date"},{key:"number",title:"Passport Number"},{key:"nationality",title:"Nationality"},{key:"country",title:"Country"},{key:"sex",title:"Gender"},{key:"personal_number",title:"ID Card"},{key:"date_of_birth",title:"Birth Date"}],h=[{key:"account_name",title:"\u0E0A\u0E37\u0E48\u0E2D\u0E1A\u0E31\u0E0D\u0E0A\u0E35"},{key:"bank_name",title:"\u0E18\u0E19\u0E32\u0E04\u0E32\u0E23"},{key:"bank_branch",title:"\u0E2A\u0E32\u0E02\u0E32"},{key:"account_number",title:"\u0E40\u0E25\u0E02\u0E17\u0E35\u0E48\u0E1A\u0E31\u0E0D\u0E0A\u0E35"}],v=[{key:"national_id",title:"ID Card"},{key:"init_th",title:"Title (Thai)"},{key:"name_th",title:"Name (Thai)"},{key:"surname_th",title:"Last name (Thai)"},{key:"fullname_th",title:"Full name (Thai)"},{key:"init_en",title:"Title (Eng)"},{key:"name_en",title:"Name (Eng)"},{key:"surname_en",title:"Last name (Eng)"},{key:"fullname_en",title:"Full name (Eng)"},{key:"date_of_birth",title:"Birthday"},{key:"address_province",title:"Province"},{key:"address_district",title:"District"},{key:"address_subdistrict",title:"Subdistrict"},{key:"address_postal_code",title:"Postal code"}],p=[{key:"score",title:"Score"}],g=[{key:"bbox",title:"bbox"},{key:"company",title:"Company"},{key:"detection_score",title:"Detection Score"},{key:"name",title:"Name"},{key:"recognition_score",title:"Recognition Score"}],m=[{key:"isSamePerson",title:"\u0E01\u0E32\u0E23\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19"},{key:"confidence",title:"\u0E04\u0E30\u0E41\u0E19\u0E19\u0E04\u0E27\u0E32\u0E21\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19"}],L=[{key:"lp_number",title:"License Plate"},{key:"country",title:"Country"},{key:"province",title:"Province"},{key:"vehicle_brand",title:"Brand"},{key:"vehicle_model",title:"Model"},{key:"vehicle_color",title:"Color"},{key:"vehicle_body_type",title:"Type"},{key:"vehicle_year",title:"Year"}],x=[{key:"label",title:"Label"},{key:"infer_time(s)",title:"Infer time"}];var j=a(74848);let f=(e,t)=>(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:e}),(0,j.jsx)("td",{children:"object"==typeof t?JSON.stringify(t):t})]}),D=e=>{let t=e?.face&&(e?.id_number||e?.personal_number)||e?.face_photo_base64||e?.imageUrl;return(0,j.jsx)("div",{className:n,children:(0,j.jsx)("table",{children:e?.back_number?(0,j.jsx)("tbody",{children:f("Back Number",e?.back_number)}):(0,j.jsxs)("tbody",{children:[t&&(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:"Image"}),(0,j.jsx)("td",{children:(0,j.jsx)("img",{alt:"thai-id-card-front",src:`data:image/png;base64,${e?.face||e?.face_photo_base64||e?.imageUrl}`})})]}),(e?.id_number?l:e?.en_license_no?u:e?.personal_number?y:e?.account_name?h:e?.reason_code_id_card_signature>0?v:e?.predict?p:e?.company&&e?.recognition_score?g:e?.confidence?m:e?.lp_number?L:e&&e["infer_time(s)"]>0?x:[])?.map(t=>f(t?.title,e[t?.key]))]})})})},b=(e,t,a)=>"imageUrl"!==a&&"image_url"!==a&&"base64"!==a&&"base64_string"!==a,k=(e,t)=>{console.log("result========>",e),console.log("apiType========>",t);let a=e?.pages||e?.processed||e?.path||t;return(0,j.jsxs)("div",{children:[a&&(0,j.jsxs)("div",{className:n,children:[e?.pages&&(0,j.jsx)("div",{className:n,children:e?.pages?.map((e,t)=>(0,j.jsxs)("div",{children:[e?.page&&(0,j.jsxs)("h4",{children:["Page ",e?.page]}),(0,j.jsxs)("table",{children:[(0,j.jsx)("thead",{children:Object.keys(e?.components[0])?.map(e=>(0,j.jsx)("th",{children:e}))}),(0,j.jsx)("tbody",{children:e?.components?.map((e,t)=>(0,j.jsx)("tr",{children:Object.keys(e).map(t=>(0,j.jsx)("td",{children:e[t]}))},t))})]})]},t))}),e?.processed&&(0,j.jsx)("div",{className:n,children:(0,j.jsx)("table",{children:(0,j.jsx)("tbody",{children:Object.entries(e?.processed)?.map(([e,t])=>"items"===e?null:(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:e}),(0,j.jsx)("td",{children:"object"==typeof t?JSON.stringify(t):String(t)})]},e))})})}),t&&["thai-national-id-card","thai-driver-license-ocr","passport-ocr","thai-national-id-card-with-signature","facial_anti_spoofing","face-recognition","license-plate-recognition","meter-number-ocr","face-extractor"].includes(t)&&D(e),t&&["bank-book"].includes(t)&&D(e?.bank_book_results),t&&["book-bank-ocr-with-signature"].includes(t)&&(0,j.jsx)("div",{className:n,children:(0,j.jsx)("table",{children:(0,j.jsxs)("tbody",{children:[h?.map(t=>f(t?.title,e?.bank_book_results[t?.key])),f("\u0E25\u0E32\u0E22\u0E40\u0E0B\u0E47\u0E19",e?.reason_codes?.signature?.message||e?.signature)]})})}),t&&["face-detect-single"].includes(t)&&(0,j.jsx)("div",{className:n,children:(0,j.jsx)("table",{children:(0,j.jsxs)("tbody",{children:[(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:"Face"}),(0,j.jsx)("td",{children:(0,j.jsx)("img",{alt:"face-single",src:`${e?.face}`})})]}),(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:"bbox"}),(0,j.jsx)("td",{children:Object.keys(e?.bbox).map(t=>(0,j.jsx)("div",{children:e?.bbox[t]}))})]}),f("Detection Score",e?.detection_score)]})})}),t&&["face-verify-id2","face-verification"].includes(t)&&(0,j.jsx)("div",{className:n,children:(0,j.jsx)("table",{children:(0,j.jsxs)("tbody",{children:[f("\u0E01\u0E32\u0E23\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19",e?.total?.isSamePerson==="true"||e?.matched?"\u0E1A\u0E38\u0E04\u0E04\u0E25\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19":"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E1A\u0E38\u0E04\u0E04\u0E25\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19"),f("\u0E04\u0E30\u0E41\u0E19\u0E19\u0E04\u0E27\u0E32\u0E21\u0E40\u0E2B\u0E21\u0E37\u0E2D\u0E19",e?.total?.confidence||e?.score)]})})}),t&&["cv-jd-ocr"].includes(t)&&(e=>{var t;let a=e?.evaluation;if(!a)return null;let n=e=>e>=85?"#22c55e":e>=70?"#3b82f6":e>=50?"#f59e0b":"#ef4444";return(0,j.jsxs)("div",{className:"cvEvaluationContainer_ka_0",children:[(0,j.jsxs)("div",{className:"cvEvaluationHeader_WH7J",children:[(0,j.jsxs)("div",{className:`overallScoreCircle_jxKY ${(t=a.scores?.overall||0)>=85?"scoreExcellent_NNYX":t>=70?"scoreGood_cKq7":t>=50?"scoreFair_yqxJ":"scorePoor_JSPr"}`,children:[(0,j.jsx)("span",{className:"scoreValue_BM6f",children:a.scores?.overall||0}),(0,j.jsx)("span",{className:"scoreLabel_r9sF",children:"/ 100"})]}),(0,j.jsxs)("div",{children:[(0,j.jsx)("h3",{children:"\u{1F4CA} CV Evaluation Report"}),(0,j.jsxs)("p",{style:{margin:"4px 0 0 0",color:"#64748b",fontSize:"0.9rem"},children:["Experience Level: ",(0,j.jsx)("strong",{children:a.experienceLevel})," | Total Years: ",(0,j.jsx)("strong",{children:a.totalYearsOfExperience})]})]})]}),(0,j.jsx)("div",{className:"cvScoresGrid_Dn2n",children:[{key:"personalInfo",label:"\u{1F464} Personal Info",icon:"\u{1F464}"},{key:"education",label:"\u{1F393} Education",icon:"\u{1F393}"},{key:"workExperience",label:"\u{1F4BC} Work Experience",icon:"\u{1F4BC}"},{key:"skills",label:"\u{1F6E0}\uFE0F Skills",icon:"\u{1F6E0}\uFE0F"}].map(e=>{let t=a.scores?.[e.key];return t?(0,j.jsxs)("div",{className:"cvScoreCard_Ujty",children:[(0,j.jsxs)("h4",{children:[e.label," ",(0,j.jsx)("span",{style:{marginLeft:"auto",fontWeight:"bold",color:n(t.score)},children:t.score})]}),(0,j.jsx)("div",{className:"scoreBar_XqoJ",children:(0,j.jsx)("div",{className:"scoreBarFill_a8M0",style:{width:`${t.score}%`,background:n(t.score)}})}),(0,j.jsx)("p",{className:"scoreFeedback_piVI",children:t.feedback})]},e.key):null})}),a.atsCompatibility&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsxs)("h4",{children:["\u{1F916} ATS Compatibility Score: ",(0,j.jsxs)("span",{style:{color:n(a.atsCompatibility.score)},children:[a.atsCompatibility.score,"/100"]})]}),a.atsCompatibility.issues?.length>0&&(0,j.jsxs)("div",{style:{marginBottom:"0.5rem"},children:[(0,j.jsx)("strong",{style:{fontSize:"0.85rem",color:"#dc2626"},children:"Issues:"}),(0,j.jsx)("ul",{style:{margin:"0.25rem 0",paddingLeft:"1.5rem"},className:d,children:a.atsCompatibility.issues.map((e,t)=>(0,j.jsx)("li",{children:e},t))})]}),a.atsCompatibility.suggestions?.length>0&&(0,j.jsxs)("div",{children:[(0,j.jsx)("strong",{style:{fontSize:"0.85rem",color:"#2563eb"},children:"Suggestions:"}),(0,j.jsx)("ul",{style:{margin:"0.25rem 0",paddingLeft:"1.5rem"},className:s,children:a.atsCompatibility.suggestions.map((e,t)=>(0,j.jsx)("li",{children:e},t))})]})]}),(0,j.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(280px, 1fr))",gap:"1rem"},children:[a.strengths?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u2705 Strengths"}),(0,j.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},className:"cvListGreen_gAXQ",children:a.strengths.map((e,t)=>(0,j.jsx)("li",{children:e},t))})]}),a.weaknesses?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u26A0\uFE0F Weaknesses"}),(0,j.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},className:d,children:a.weaknesses.map((e,t)=>(0,j.jsx)("li",{children:e},t))})]})]}),a.missingSections?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u{1F4CB} Missing Sections"}),(0,j.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},className:s,children:a.missingSections.map((e,t)=>(0,j.jsx)("li",{children:e},t))})]}),a.improvements?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u{1F680} Recommended Improvements"}),a.improvements.map((e,t)=>(0,j.jsxs)("div",{className:`improvementCard_ndIG ${(e=>{switch(e){case"high":return"highPriority_xkQ0";case"medium":return"mediumPriority_Jaji";case"low":return"lowPriority_diiP";default:return""}})(e.priority)}`,children:[(0,j.jsxs)("h5",{children:[e.section,(0,j.jsxs)("span",{className:`priorityBadge_K5Iw ${(e=>{switch(e){case"high":return"priorityHigh_qkHq";case"medium":return"priorityMedium_AMZJ";case"low":return"priorityLow_m4Mr";default:return""}})(e.priority)}`,children:[e.priority," priority"]})]}),(0,j.jsxs)("p",{children:[(0,j.jsx)("strong",{children:"Issue:"})," ",e.issue]}),(0,j.jsxs)("p",{children:[(0,j.jsx)("strong",{children:"Suggestion:"})," ",e.suggestion]}),e.example&&(0,j.jsxs)("div",{className:"example_SNLU",children:[(0,j.jsx)("strong",{children:"Example:"})," ",e.example]})]},t))]}),a.suggestedKeywords?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u{1F511} Suggested Keywords to Add"}),(0,j.jsx)("div",{className:o,children:a.suggestedKeywords.map((e,t)=>(0,j.jsx)("span",{className:i,children:e},t))})]}),a.industryFitSuggestions?.length>0&&(0,j.jsxs)("div",{className:c,children:[(0,j.jsx)("h4",{children:"\u{1F3AF} Suitable Industries/Roles"}),(0,j.jsx)("div",{className:o,children:a.industryFitSuggestions.map((e,t)=>(0,j.jsx)("span",{className:i,style:{background:"#dcfce7",color:"#166534"},children:e},t))})]}),a.executiveSummary&&(0,j.jsxs)("div",{className:"executiveSummary_ksR6",children:[(0,j.jsx)("h4",{children:"\u{1F4DD} Executive Summary"}),(0,j.jsx)("p",{children:a.executiveSummary})]})]})})(e),e?.path&&(0,j.jsxs)("div",{children:[(0,j.jsx)("label",{children:"Path Download"}),(0,j.jsx)("br",{}),(0,j.jsx)("a",{download:!0,href:e?.path,children:`${e?.path.slice(0,100)}${e?.path?.length>100?"...":""}`})]})]}),e?.processed?.items&&e?.processed?.items.length>0&&(0,j.jsxs)("div",{className:n,children:[(0,j.jsx)("h4",{children:"Items"}),(0,j.jsxs)("table",{children:[(0,j.jsx)("thead",{children:(0,j.jsxs)("tr",{children:[(0,j.jsx)("th",{children:"No"}),(0,j.jsx)("th",{children:"Name"}),(0,j.jsx)("th",{children:"Unit"}),(0,j.jsx)("th",{children:"Unit Cost"}),(0,j.jsx)("th",{children:"Total Cost"})]})}),(0,j.jsx)("tbody",{children:e?.processed?.items?.map(e=>(0,j.jsxs)("tr",{children:[(0,j.jsx)("td",{children:e.itemNo}),(0,j.jsx)("td",{children:e.itemName}),(0,j.jsx)("td",{children:e.itemUnit}),(0,j.jsx)("td",{children:e.itemUnitCost}),(0,j.jsx)("td",{children:e.itemTotalCost})]},e.itemNo))})]})]}),(0,j.jsx)("div",{className:"jsonSection_gnao",children:(0,j.jsxs)("details",{className:"jsonDetail
1s_Sc8t",open:!0,children:[(0,j.jsx)("summary",{className:"jsonSummary_H8vU",children:(0,j.jsx)("span",{children:"Raw JSON Response"})}),(0,j.jsxs)("div",{className:"jsonContent_f4Cx",children:[(0,j.jsx)("div",{className:"jsonHeader_XXdj",children:(0,j.jsx)("button",{onClick:()=>navigator.clipboard.writeText(e?JSON.stringify(e,null,2):""),className:"copyButton_UxWM",title:"Copy JSON",children:"Copy"})}),(0,j.jsx)(r.UU,{data:e,style:r.k5,shouldExpandNode:b})]})]})})]})}},35139:function(e,t,a){a.d(t,{A:()=>w});var n=a(96540),c=a(82475),d=a(96990),s=a(14597),o=a(29574),i=a(71989);let r="container_soO7",l="keyHint_S_Xu",u="fieldLabel_akKw",y="button_r9z2",h="mount_G3Lp",v="mountActive_ROQk",p="fileRow_z5zZ",g="fileGroup_ecSY",m="fileInput_XWnr",L="fileActions_ccfs",x="cameraButton_wN9Z",j="capturedBadge_cBD4",f="preview_qBMI";var D=a(74848);let b=null,k=[{value:"thaiIdFront",label:"Thai ID card \u2014 front"},{value:"thaiIdBack",label:"Thai ID card \u2014 back"},{value:"thaiIdWithSignature",label:"Thai ID card + signature"},{value:"thaiDriverLicense",label:"Thai driver license"},{value:"bookBank",label:"Book bank"},{value:"passport",label:"Passport"}],_={documentCapture:"Document Auto-Capture (Live Camera)",activeLiveness:"Face Active Liveness (Live Camera)",faceVerification:"Face Verification (Two Images)",passiveLiveness:"Passive Liveness (One Image)"};function C(e,t){if(e&&"object"==typeof e){if("CancelledError"===e.name||"error_cancelled"===e.userMessageKey)return"Demo cancelled.";let a=e.statusCode?` (HTTP ${e.statusCode})`:"",n=`${e.name||"Error"}${a}: ${e.message||"Something went wrong."}`;return 401===e.statusCode?n+=" Check that your API key is valid.":402===e.statusCode?n+=" Insufficient credits \u2014 top up at https://iapp.co.th/control/dashboard.":404===e.statusCode&&"activeLiveness"===t&&(n+=" The active-liveness finalize API is not yet available on this environment."),n}return String(e)}let N=({flow:e,documentType:t="thaiIdFront",title:a,showDocumentTypePicker:c=!1})=>{var N;let{i18n:w}=(0,s.A)(),S=(0,d.Ay)("/sdk/ekyc-sdk.umd.js"),T=(0,d.Ay)("/sdk/vendor/mediapipe-models/face_landmarker/float16/1/face_landmarker.task"),I="th"===(N=w.currentLocale)?"th":"zh-CN"===N||"zh"===N?"zh":"en",[A,P]=(0,n.useState)(""),[R,E]=(0,n.useState)(t),[F,O]=(0,n.useState)(!1),[K,B]=(0,n.useState)(!1),[U,M]=(0,n.useState)(null),[q,$]=(0,n.useState)(null),[H,z]=(0,n.useState)(""),[W,Y]=(0,n.use
1State)(!0),[G,J]=(0,n.useState)(null),[V,X]=(0,n.useState)(null),[Z,Q]=(0,n.useState)(null),[ee,et]=(0,n.useState)(null),[ea,en]=(0,n.useState)(!1),[ec,ed]=(0,n.useState)(!1),[es,eo]=(0,n.useState)(null),ei=(0,n.useRef)(null),er=(0,n.useRef)(null),el=(0,n.useRef)([]),eu="documentCapture"===e||"activeLiveness"===e;(0,n.useEffect)(()=>{Y(window.isSecureContext)},[]),(0,n.useEffect)(()=>()=>{el.current.forEach(e=>URL.revokeObjectURL(e)),el.current=[]},[]);let ey=e=>(el.current.push(e),e),eh=()=>{z(""),M(null),$(null)},ev=()=>!!A&&""!==A.trim()||(z("No API key provided. Select or paste an API key above to run this demo."),!1),ep=async()=>new(await function(e){if("undefined"==typeof window)return Promise.reject(Error("The eKYC SDK can only load in a browser."));let t=window.IappEkyc;return t&&t.IappEkyc?Promise.resolve(t):(b||(b=new Promise((t,a)=>{let n=document.createElement("script");n.src=e,n.async=!0,n.onload=()=>{let e=window.IappEkyc;e&&e.IappEkyc?t(e):(b=null,a(Error("eKYC SDK script loaded but the IappEkyc global was not found.")))},n.onerror=()=>{b=null,n.remove(),a(Error("Failed to load the eKYC SDK script (/sdk/ekyc-sdk.umd.js)."))},document.head.appendChild(n)})),b)}(S)).IappEkyc({apiKey:A.trim(),baseUrl:(0,i.h)("https://api.iapp.co.th"),locale:I}),eg=async()=>{if(eh(),ev()){if(!window.isSecureContext)return void z("Camera access requires HTTPS (or localhost). Please open this page over a secure connection.");O(!0);try{let t=await ep(),a=ei.current;if(!a)throw Error("Demo mount element is not ready.");if("documentCapture"===e){let e=await t.captureDocument({mount:a,documentType:R,locale:I});M(e.raw),e.capturedImage instanceof Blob&&$(ey(URL.createObjectURL(e.capturedImage)))}else{let e=await t.startActiveLiveness({mount:a,locale:I,returnImage:!0,modelUrl:T});M(e.raw),e.selfie&&e.selfie.image_base64?$(`data:${e.selfie.content_type||"image/jpeg"};base64,${e.selfie.image_base64}`):e.selfieImage instanceof Blob&&$(ey(URL.createObjectURL(e.selfieImage)))}}catch(t){z(C(t,e))}finally{O(!1),ei.current&&(ei.current.innerHTML="")}}},em=(e,t)=>{let a=t.target.files&&t.target.files[0]?t.target.files[0]:null;z(""),M(null),1===e?(J(a),Q(a?ey(URL.createObjectURL(a)):null),en(!1)):(X(a),et(a?ey(URL.createObjectURL(a)):null),ed(!1))},eL=async t=>{if(z(""),M(null),ev()){if(!window.isSecureContext)return void z("Camera access requires HTTPS (or localhost). Please open this page over a secure connection.");eo(t);try{let e=await ep(),a=er.current;if(!a)throw Error("Camera mount element is not ready.");let n=await e.captureFace({mount:a,locale:I,modelUrl:T}),c=new File([n],`selfie-${t}.jpg`,{type:n.type||"image/jpeg"}),d=ey(URL.createObjectURL(n));1===t?(J(c),Q(d),en(!0)):(X(c),et(d),ed(!0))}catch(a){let t=C(a,e);"Demo cancelled."!==t&&z(t)}finally{eo(null),er.current&&(er.current.innerHTML="")}}},ex=async()=>{if(eh(),ev()){if(!G||!V)return void z("Please choose two face images first.");B(!0);try{let e=await ep(),t=await e.verifyFaces(G,V);M(t.raw)}catch(t){z(C(t,e))}finally{B(!1)}}},ej=async()=>{if(eh(),ev()){if(!G)return void z("Please choose a selfie image first.");B(!0);try{let e=await ep(),t=await e.checkPassiveLiveness(G);M(t.raw)}catch(t){z(C(t,e))}finally{B(!1)}}},ef=!!(A&&""!==A.trim()),eD=a||_[e];return(0,D.jsxs)("div",{className:r,children:[(0,D.jsxs)("div",{className:"title_YsVg",children:[(0,D.jsx)("i",{className:eu?"fa-solid fa-camera":"fa-solid fa-image"}),(0,D.jsx)("span",{children:eD})]}),(0,D.jsxs)("div",{className:"keySection_W1ux",children:[(0,D.jsx)(o.Z,{value:A,onChange:P}),!ef&&(0,D.jsx)("p",{className:l,children:"An API key is required \u2014 every demo call is a real API request billed to your key."})]}),eu&&!W&&(0,D.jsxs)("div",{className:"secureWarning_EWf2",children:[(0,D.jsx)("i",{className:"fa-solid fa-lock",style:{marginRight:6}}),"Camera access requires a secure context (HTTPS or localhost). This page is not served over HTTPS, so the live camera demo will not work here."]}),"documentCapture"===e&&c&&(0,D.jsxs)("div",{className:"docTypeRow_myGJ",children:[(0,D.jsx)("label",{className:u,htmlFor:"ekyc-doc-type",children:"Document type"}
1),(0,D.jsx)("select",{id:"ekyc-doc-type",className:"select_Grhc",value:R,onChange:e=>E(e.target.value),disabled:F,children:k.map(e=>(0,D.jsx)("option",{value:e.value,children:e.label},e.value))})]}),eu&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("button",{className:y,onClick:eg,disabled:F||!ef||!W,children:F?"Camera running\u2026 (use the on-screen Cancel to stop)":"Start camera demo"}),(0,D.jsx)("div",{ref:ei,className:F?v:h,"aria-hidden":!F})]}),"faceVerification"===e&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsxs)("div",{className:p,children:[(0,D.jsxs)("div",{className:g,children:[(0,D.jsx)("label",{className:u,children:"Face image 1"}),(0,D.jsx)("input",{type:"file",accept:"image/*",className:m,onChange:e=>em(1,e),disabled:null!==es}),(0,D.jsxs)("div",{className:L,children:[(0,D.jsx)("button",{type:"button",className:x,onClick:()=>eL(1),disabled:null!==es||K||!ef||!W,title:W?void 0:"Camera requires HTTPS (or localhost)",children:"\u{1F4F7} Use camera"}),ea&&(0,D.jsx)("span",{className:j,children:"captured \u2713"})]}),Z&&(0,D.jsx)("img",{src:Z,alt:"Face 1 preview",className:f})]}),(0,D.jsxs)("div",{className:g,children:[(0,D.jsx)("label",{className:u,children:"Face image 2"}),(0,D.jsx)("input",{type:"file",accept:"image/*",className:m,onChange:e=>em(2,e),disabled:null!==es}),(0,D.jsxs)("div",{className:L,children:[(0,D.jsx)("button",{type:"button",className:x,onClick:()=>eL(2),disabled:null!==es||K||!ef||!W,title:W?void 0:"Camera requires HTTPS (or localhost)",children:"\u{1F4F7} Use camera"}),ec&&(0,D.jsx)("span",{className:j,children:"captured \u2713"})]}),ee&&(0,D.jsx)("img",{src:ee,alt:"Face 2 preview",className:f})]})]}),(0,D.jsx)("div",{ref:er,className:null!==es?v:h,"aria-hidden":null===es}),(0,D.jsx)("button",{className:y,onClick:ex,disabled:K||null!==es||!ef||!G||!V,children:K?"Processing\u2026":"Verify faces"})]}),"passiveLiveness"===e&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)("div",{className:p,children:(0,D.jsxs)("div",{className:g,children:[(0,D.jsx)("label",{className:u,children:"Selfie image"}),(0,D.jsx)("input",{type:"file",accept:"image/*",className:m,onChange:e=>em(1,e),disabled:null!==es}),(0,D.jsxs)("div",{className:L,children:[(0,D.jsx)("button",{type:"button",className:x,onClick:()=>eL(1),disabled:null!==es||K||!ef||!W,title:W?void 0:"Camera requires HTTPS (or localhost)",children:"\u{1F4F7} Use camera"}),ea&&(0,D.jsx)("span",{className:j,children:"captured \u2713"})]}),Z&&(0,D.jsx)("img",{src:Z,alt:"Selfie preview",className:f})]})}),(0,D.jsx)("div",{ref:er,className:null!==es?v:h,"aria-hidden":null===es}),(0,D.jsx)("button",{className:y,onClick:ej,disabled:K||null!==es||!ef||!G,children:K?"Processing\u2026":"Check passive liveness"})]}),H&&(0,D.jsx)("div",{className:"error_KtEL",children:H}),U&&(0,D.jsxs)("div",{className:"results_SRrI",children:[(0,D.jsx)("div",{className:"resultsTitle_sJPW",children:"Result"}),q&&(0,D.jsx)("img",{src:q,alt:"Captured result",className:"resultImage_skiL"}),(0,D.jsx)("pre",{className:"resultJson_QfP9",children:JSON.stringify(U,null,2)})]}),(0,D.jsxs)("p",{className:"footnote__3LM",children:["Powered by the free open-source"," ",(0,D.jsx)("a",{href:"https://github.com/iapp-technology/iapp-ekyc-sdk",target:"_blank",rel:"noreferrer",children:"iApp eKYC SDK"}),". OpenCV.js / MediaPipe assets are loaded from a CDN on first start."]})]})},w=e=>(0,D.jsx)(c.A,{fallback:(0,D.jsx)("div",{className:r,children:(0,D.jsx)("p",{className:l,children:"Loading live demo\u2026"})}),children:()=>(0,D.jsx)(N,{...e})})},66568:function(e,t,a){a.d(t,{A:()=>h});var n=a(96540);let c={container:"container__NA4",exampleImages:"exampleImages_DcDK",imageGallery:"imageGallery_nxKR",exampleImageWrapper:"exampleImageWrapper_tqCG",exampleImageOverlay:"exampleImageOverlay_Sagm",playIcon:"playIcon_uDtf",disabled:"disabled_bArG",exampleImage:"exampleImage_k4oq",inputGroup:"inputGroup_wtWr",hint:"hint_iekK",button:"button_V5H5",buttonDisabled:"buttonDisabled_kow5",submitContainer:"submitContainer_xyiG",loadingIndicator:"loadingIndicator_hp6r",pulse:"pulse_Mu4L",spinner:"spinner_mDMJ",spin:"spin_PImo",loadingText:"loadingText_JD_V",loadingSubtext:"loadingSubtext_msfl",error:"error_nRJo",results:"results_WqnJ",tableContainer:"tableContainer_d4eu",jsonView:"jsonView_lwDi",previewContainer:"previewContainer_rM4b",previewImage:"previewImage_lAX9",fileInput:"fileInput_ubTc",copyContainer:"copyContainer_zIKa",readOnlyInput:"readOnlyInput_16M2",curlCommand:"curlCommand_d_rq",copyButton:"copyButton_JwIi",jsonHeader:"jsonHeader_m1oN",link:"link_CbGJ",buttonTab:"buttonTab_jEWJ",buttonTabActive:"buttonTabActive_HL26",demoWrapper:"demoWrapper_B5iR",loginOverlay:"loginOverlay_IidU",loginOverlayContent:"loginOverlayContent__w9_",loginOverlayIcon:"loginOverlayIcon_uUDj",loginOverlayTitle:"loginOverlayTitle_UYRq",loginOverlayText:"loginOverlayText_K3Nk",loginOverlayPromo:"loginOverlayPromo_zKzP",loginOverlayPromoIcon:"loginOverlayPromoIcon_tZSR",loginOverlayPromoTextWrapper:"loginOverlayPromoTextWrapper_SVyg",loginOverlayPromoText:"loginOverlayPromoText_gf6p",loginOverlayPromoExpiry:"loginOverlayPromoExpiry_wDZ0",loginOverlayButtons:"loginOverlayButtons_dxWm",loginOverlayButton:"loginOverlayButton_I5nm",loginOverlayButtonPrimary:"loginOverlayButtonPrimary_OT0g",loginOverlayButtonSecondary:"loginOverlayButtonSecondary_XHbl",demoContent:"demoContent_o5IW"};var d=a(29574),s=a(71989),o=a(57172),i=a(30345),r=a(33717),l=a(96990),u=a(43317),y=a(74848);let h=({endpointUrl:e,exampleImages:t,requireFormData:a,submitTitle:h,resultEndpointUrlTabs:v,requireUpload:p={total:1,label:["Upload Image"],countIndex:0},requireInput:g,customDemoResultView:m})=>{let{user:L}=(0,r.A)(),x=(0,l.Ay)("/login"),j=(0,l.Ay)("/register"),[f,D]=(0,n.use
1State)(""),[b,k]=(0,n.useState)(Array(p?.total).fill(null)),[_,C]=(0,n.useState)(!1),[N,w]=(0,n.useState)(null),[S,T]=(0,n.useState)(""),I=Array.from({length:p?.total},()=>n.useRef(null)),[A,P]=(0,n.useState)(Array(p?.total).fill(null)),[R,E]=(0,n.useState)(""),[F,O]=(0,n.useState)(null),[K,B]=(0,n.useState)((0,s.h)(e)),[U,M]=(0,n.useState)(g||[]),q=v?.map(e=>({...e,url:(0,s.h)(e.url)})),$=t?{...t,image:t.image?.map(e=>"string"==typeof e?e:{...e,endpoint:e.endpoint?(0,s.h)(e.endpoint):void 0})}:void 0;(0,n.useEffect)(()=>()=>{A.forEach(e=>{e&&URL.revokeObjectURL(e)})},[A]);let H=async e=>{let t;if(console.log("apiKey"),!f||""===f){T("No API key provided"),C(!1);return}let n=q?.find(e=>e.url===K),c=n?.sendAsBase64Json||!1,d={apikey:f};if(c&&e[0]){let n=e[0],c={image:await new Promise((e,t)=>{let a=new FileReader;a.onloadend=()=>{e(a.result.split(",")[1])},a.onerror=t,a.readAsDataURL(n)})};a?.length&&a.forEach(e=>{c[e.key]=e.value}),g?.length&&g.forEach(e=>{c[e.key]=e.value}),t=JSON.stringify(c),d["Content-Type"]="application/json"}else{let n=new FormData;p?.total===1?K.includes("/v1/image/extract/credit-card")?n.append("card_image",e[0]):n.append("file",e[0]):e.forEach((e,t)=>{e&&n.append(`file${t+(p?.countIndex||0)}`,e)}),a?.length&&a.forEach(e=>{n.append(e.key,e.value)}),g?.length&&g.forEach(e=>{n.append(e.key,e.value)}),t=n}try{let e=await fetch(K,{method:"POST",headers:d,body:t});console.log("response=====>",e);let a=e.headers.get("content-type");if(!e.ok)if(402===e.status){let t=await e.json().catch(()=>({})),a=t.message||"Insufficient API credits. Please add iApp credits (IC) to continue using the API.",n=t.top_up_url||"https://iapp.co.th/control/dashboard";throw Error(`${a} Add credits at: ${n}`)}else if(429===e.status)throw Error("Too Many Requests (429): Rate limit exceeded. Please check your API key limits at https://iapp.co.th/control/api-keys");else throw Error(`API Error (${e.status}): ${e.statusText}`);if(a?.includes("application/json")){let t=await e.json();w(t)}else if(a?.includes("image")){let t=await e.blob(),a=new FileReader;a.onloadend=()=>{let e=a.result;w({imageUrl:e?.toString().split(",")[1]})},a.readAsDataURL(t)}else throw Error("Unsupported response type")}catch(e){T(e instanceof Error?e.message:"An error occurred")}finally{C(!1)}},z=async()=>{b.some(e=>!e)||p?.total!==b.filter(e=>null!==e).length?T(`Please select ${p?.total} file(s)`):(C(!0),T(""),w(null),await H(b))},W=async e=>{try{C(!0),T(""),w(null);let t=await fetch(e),a=await t.blob(),n=new File([a],"example.jpg",{type:a.type}),c=[...b],d=[...A];c.filter(e=>null!==e).length===p?.total&&(c=Array(p?.total).fill(null),d=Array(p?.total).fill(null));let s=c.findIndex(e=>null===e);if(c[s]=n,d[s]=URL.createObjectURL(a),k(c),P(d),I[s]?.current){let e=new DataTransfer;e.items.add(n),I[s].current.files=e.files}c.filter(e=>null!==e).length===p?.total&&await H(c)}catch(e){T(e instanceof Error?e.message:"An error occurred")}finally{C(!1)}};return(0,n.useEffect)(()=>{(()=>{let e=q?.find(e=>e.url===K),t=e?.sendAsBase64Json||!1,n=`curl -X POST "${K}" \\ 2-H "apikey: ${f}" \\ 3`;if(t){n+=`-H "Content-Type: application/json" \\ 4`;let e={image:"$(base64 -i your_image.jpg)"};a?.length&&a.forEach(t=>{e[t.key]=t.value}),g?.length&&g.forEach(t=>{e[t.key]=t.value});let t=JSON.stringify(e,null,2).replace(/"/g,'\\"').replace(/\n/g,"");n+=`-d "${t}"`}else b.forEach((e,t)=>{"https://api.iapp.co.th/v1/image/extract/credit-card"===K?n+=`-F "card_image${p?.total>1?t+(p?.countIndex||0):""}=@${e?e.name:`your_file_${t}.jpg`}" \\ 5`:n+=`-F "file${p?.total>1?t+(p?.countIndex||0):""}=@${e?e.name:`your_file_${t}.jpg`}" \\ 6`}),a?.length&&a.forEach(e=>{n+=`-F "${e.key}=${e.value}" \\ 7`}),U?.length&&U.forEach(e=>{n+=`-F "${e.key}=${e.value}" \\ 8`});E(n)})()},[f,b,K,U]),(0,y.jsxs)("div",{className:c.container,children:[(0,y.jsxs)("div",{className:c.demoWrapper,children:[!L&&(0,y.jsx)("div",{className:c.loginOverlay,children:(0,y.jsxs)("div",{className:c.loginOverlayContent,children:[(0,y.jsx)("div",{className:c.loginOverlayIcon,children:(0,y.jsx)("i",{className:"fa-solid fa-shield-halved"})}),(0,y.jsx)("h3",{className:c.loginOverlayTitle,children:(0,y.jsx)(u.A,{id:"demo.overlay.title",children:"Try Our AI Demo"})}),(0,y.jsx)("p",{className:c.loginOverlayText,children:(0,y.jsx)(u.A,{id:"demo.overlay.description",children:"Login or create a free account to use this AI service demo and explore our powerful APIs."})}),(0,y.jsxs)("div",{className:c.loginOverlayPromo,children:[(0,y.jsx)("div",{className:c.loginOverlayPromoIcon,children:(0,y.jsx)("i",{className:"fa-solid fa-gift"})}),(0,y.jsxs)("div",{className:c.loginOverlayPromoTextWrapper,children:[(0,y.jsx)("p",{className:c.loginOverlayPromoText,children:(0,y.jsx)(u.A,{id:"demo.overlay.promo",children:"Get 100 Free Credits (IC) when you sign up!"})}),(0,y.jsx)("p",{className:c.loginOverlayPromoExpiry,children:(0,y.jsx)(u.A,{id:"demo.overlay.promoExpiry",children:"Offer ends December 31, 2025"})})]})]}),(0,y.jsxs)("div",{className:c.loginOverlayButtons,children:[(0,y.jsxs)("a",{href:j,className:`${c.loginOverlayButton} ${c.loginOverlayButtonPrimary}`,children:[(0,y.jsx)("i",{className:"fa-solid fa-user-plus"}),(0,y.jsx)(u.A,{id:"demo.overlay.createAccount",children:"Create Free Account"})]}),(0,y.jsxs)("a",{href:x,className:`${c.loginOverlayButton} ${c.loginOverlayButtonSecondary}`,children:[(0,y.jsx)("i",{className:"fa-solid fa-right-to-bracket"}),(0,y.jsx)(u.A,{id:"demo.overlay.login",children:"Login"})]})]})]})}),(0,y.jsxs)("div",{className:L?"":c.demoContent,children:[(0,y.jsxs)("div",{className:c.exampleImages,children:[(0,y.jsx)("h3",{children:"Example Images (Click to try)"}),(0,y.jsx)("div",{className:c.imageGallery,children:$?.image?.map((e,t)=>"string"==typeof e||e?.endpoint===K?(0,y.jsxs)("div",{className:`${c.exampleImageWrapper} ${_?c.disabled:""}`,onClick:()=>!_&&W("string"==typeof e?e:e?.image),children:[(0,y.jsx)("img",{src:"string"==typeof e?e:e?.image,alt:`Example ${t+1}`,className:c.exampleImage}),(0,y.jsx)("div",{className:c.playIcon,children:(0,y.jsx)("i",{className:"fa-solid fa-play"})}),(0,y.jsxs)("div",{className:c.exampleImageOverlay,children:[(0,y.jsx)("i",{className:"fa-solid fa-wand-magic-sparkles"}),(0,y.jsx)("span",{children:"Try Demo"})]}),(0,y.jsx)("button",{type:"button",className:i.A.expand,style:{width:28,height:28,right:6,bottom:6,zIndex:5},"aria-label":"Enlarge image",title:"Enlarge",onClick:t=>{t.stopPropagation(),O("string"==typeof e?e:e?.image)},children:(0,y.jsx)("svg",{viewBox:"0 0 24 24",width:"15",height:"15","aria-hidden":"true",children:(0,y.jsx)("path",{fill:"currentColor",d:"M9 3H3v6h2V5h4V3zm12 0h-6v2h4v4h2V3zM5 15H3v6h6v-2H5v-4zm16 0h-2v4h-4v2h6v-6z"})})})]},t):null)})]}),(0,y.jsx)(d.Z,{value:f,onChange:D,className:c.inputGroup}),q&&(0,y.jsxs)("div",{style:{marginBottom:"10px"},children:[(0,y.jsx)("div",{style:{marginBottom:"5px"},children:(0,y.jsx)("label",{children:"Choose Endpoint URL"})}),q?.map((e,t)=>(0,y.jsx)("button",{onClick:()=>{B(e.url),w(null)},className:`${c.buttonTab} ${K===e.url?c.buttonTabActive:""}`,children:e.title},t))]}),(0,y.jsxs)("div",{className:c.inputGroup,children:[(0,y.jsx)("label",{children:"Endpoint URL"}),(0,y.jsxs)("div",{className:c.copyContainer,children:[(0,y.jsx)("input",{type:"text",value:K,onChange:e=>B(e.target.value),className:c.input,placeholder:"Enter endpoint URL"}),(0,y.jsx)("button",{onClick:()=>navigator.clipboard.writeText(K),className:c.copyButton,title:"Copy to clipboard",children:"Copy"})]})]}),U?.length>0&&U.map((e,t)=>(0,y.jsxs)("div",{className:c.inputGroup,children:[(0,y.jsx)("label",{children:e.label}),(0,y.jsx)("input",{type:"text",value:e.value,onChange:e=>{let a=[...U];a[t].value=e.target.value,M(a)}})]},t)),(0,y.jsxs)("div",{className:c.inputGroup,children:[(0,y.jsx)("label",{children:"cURL Command"}),(0,y.jsxs)("div",{className:c.copyContainer,children:[(0,y.jsx)("pre",{className:c.curlCommand,children:R}),(0,y.jsx)("button",{onClick:()=>navigator.clipboard.writeText(R),className:c.copyButton,title:"Copy to clipboard",children:"Copy"})]})]}),p?.total>0&&[...Array(p?.total)].map((e,t)=>(0,y.jsxs)("div",{className:c.inputGroup,children:[p?.label?.length>0&&(0,y.jsx)("label",{children:p?.label[t]}),(0,y.jsx)("input",{ref:I[t],type:"file",onChange:e=>((e,t)=>{if(t.target.files&&t.target.files[0]){let a=t.target.files[0],n=[...b];n[e]=a;let c=[...A];c[e]=URL.createObjectURL(a),k(n),P(c),T(""),w(null)}})(t,e),accept:"image/jpeg,image/png,image/heic,image/heif,application/pdf",className:c.fileInput}),b[t]&&(0,y.jsx)("div",{className:c.previewContainer,children:b[t]?.type==="application/pdf"?(0,y.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,y.jsx)("img",{src:"/img/pdf-file.png",alt:"PDF",className:c.pdfIcon,style:{width:16}}),(0,y.jsx)("span",{className:c.fileName,children:b[t].name})]}):A[t]&&(0,y.jsx)("img",{src:A[t],alt:`Preview ${t+1}`,className:c.previewImage})})]},t)),(0,y.jsxs)("div",{className:c.submitContainer,children:[(0,y.jsx)("button",{onClick:z,disabled:_||b.some(e=>!e),className:`${c.button} ${_||b.some(e=>!e)?c.buttonDisabled:""}`,children:_?"Processing...":h}),_&&(0,y.jsxs)("div",{className:c.loadingIndicator,children:[(0,y.jsx)("div",{className:c.spinner}),(0,y.jsxs)("div",{children:[(0,y.jsx)("span",{className:c.loadingText,children:"Processing your request"}),(0,y.jsx)("span",{className:c.loadingSubtext,children:"Please wait..."})]})]})]}),S&&(0,y.jsx)("div",{className:c.error,children:S}),N&&(0,y.jsxs)("div",{className:c.results,children:[(0,y.jsx)("h3",{children:"Results"}),m(N)]})]})]}),F&&(0,y.jsx)(o.Y,{src:F,onClose:()=>O(null)})]})}},57172:function(e,t,a){a.d(t,{A:()=>
8o,Y:()=>s});var n=a(96540),c=a(30345),d=a(74848);let s=({src:e,alt:t="",onClose:a})=>((0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&a()};document.addEventListener("keydown",e);let t=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=t}},[a]),(0,d.jsxs)("div",{className:c.A.overlay,onClick:a,role:"dialog","aria-modal":"true","aria-label":t,children:[(0,d.jsx)("button",{type:"button",className:c.A.close,onClick:a,"aria-label":"Close",title:"Close (Esc)",children:(0,d.jsx)("svg",{viewBox:"0 0 24 24",width:"22",height:"22","aria-hidden":"true",children:(0,d.jsx)("path",{fill:"currentColor",d:"M19 6.4 17.6 5 12 10.6 6.4 5 5 6.4 10.6 12 5 17.6 6.4 19 12 13.4 17.6 19 19 17.6 13.4 12z"})})}),(0,d.jsx)("img",{src:e,alt:t,className:c.A.full,onClick:e=>e.stopPropagation()})]})),o=({src:e,alt:t="",width:a,caption:o})=>{let[i,r]=(0,n.useState)(!1),l=(0,n.useCallback)(()=>r(!1),[]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("figure",{className:c.A.wrap,style:a?{width:a}:void 0,children:[(0,d.jsx)("img",{src:e,alt:t,className:c.A.thumb,onClick:()=>r(!0)}),(0,d.jsx)("button",{type:"button",className:c.A.expand,onClick:()=>r(!0),"aria-label":"Enlarge image",title:"Enlarge",children:(0,d.jsx)("svg",{viewBox:"0 0 24 24",width:"18",height:"18","aria-hidden":"true",children:(0,d.jsx)("path",{fill:"currentColor",d:"M9 3H3v6h2V5h4V3zm12 0h-6v2h4v4h2V3zM5 15H3v6h6v-2H5v-4zm16 0h-2v4h-4v2h6v-6z"})})}),o&&(0,d.jsx)("figcaption",{className:c.A.caption,children:o})]}),i&&(0,d.jsx)(s,{src:e,alt:t,onClose:l})]})}},71989:function(e,t,a){a.d(t,{h:()=>n});let n=e=>{if("undefined"==typeof window)return e;let t=window.location.hostname,a="api.iapp.co.th";return"uat.iapp.co.th"===t?a="uat-api.iapp.co.th":"staging.iapp.co.th"===t&&(a="prod-api.iapp.co.th"),e.replace(/(https?:\/\/)([^\/]+)(\/.*)?/,(e,t,n,c)=>n.includes("api.iapp.co.th")||"api.iapp.co.th"===n?`${t}${a}${c||"/"}`:e)}},22958:function(e){e.exports=JSON.parse('{"generatedAt":"2026-09-12T00:57:53.785Z","generatedAtFormatted":"September 12, 2026 at 07:57 AM","totalApiCalls":84861072,"stats":{"/docs/ekyc/face-verification":{"count":12276447,"formatted":"12.3M","fullFormatted":"12,276,447","esCount":12276447,"subscriptionCount":0},"/docs/ekyc/face-passive-liveness":{"count":5859958,"formatted":"5.9M","fullFormatted":"5,859,958","esCount":5859958,"subscriptionCount":0},"/docs/ekyc/thai-national-id-card":{"count":23663006,"formatted":"23.7M","fullFormatted":"23,663,006","esCount":3580117,"subscriptionCount":20082889},"/docs/nlp/translation/multilingual":{"count":3987412,"formatted":"4M","fullFormatted":"3,987,412","esCount":3987412,"subscriptionCount":0},"/docs/smart-city/license-plate":{"count":20085423,"formatted":"20.1M","fullFormatted":"20,085,423","esCount":1226492,"subscriptionCount":18858931},"/docs/image-generation/remove-background":{"count":623974,"formatted":"624K","fullFormatted":"623,974","esCount":623974,"subscriptionCount":0},"/docs/speech/text-to-speech/text-to-speech-v1":{"count":1312580,"formatted":"1.3M","fullFormatted":"1,312,580","esCount":1312580,"subscriptionCount":0},"/docs/nlp/sentiment-analysis":{"count":622779,"formatted":"622.8K","fullFormatted":"622,779","esCount":622779,"subscriptionCount":0},"/docs/ekyc/face-detection":{"count":546997,"formatted":"547K","fullFormatted":"546,997","esCount":546997,"subscriptionCount":0},"/docs/nlp/question/answer":{"count":294904,"formatted":"294.9K","fullFormatted":"294,904","esCount":294904,"subscriptionCount":0},"/docs/ocr/document":{"count":337086,"formatted":"337.1K","fullFormatted":"337,086","esCount":337086,"subscriptionCount":0},"/docs/ekyc/thai-driver-license":{"count":13657024,"formatted":"13.7M","fullFormatted":"13,657,024","esCount":209061,"subscriptionCount":13447963},"/docs/smart-city/automatic-route-optimization":{"count":164274,"formatted":"164.3K","fullFormatted":"164,274","esCount":164274,"subscriptionCount":0},"/docs/speech/speech-to-text/base":{"count":166260,"formatted":"166.3K","fullFormatted":"166,260","esCount":166260,"subscriptionCount":0},"/docs/ekyc/book-bank":{"count":215287,"formatted":"215.3K","fullFormatted":"215,287","esCount":215287,"subscriptionCount":0},"/docs/llm/thanoy-legal":{"count":108342,"formatted":"108.3K","fullFormatted":"108,342","esCount":108342,"subscriptionCount":0},"/docs/ekyc/passport":{"count":293563,"formatted":"293.6K","fullFormatted":"293,563","esCount":121860,"subscriptionCount":171703}
8,"/docs/speech/speech-to-text/realtime":{"count":91522,"formatted":"91.5K","fullFormatted":"91,522","esCount":91522,"subscriptionCount":0},"/docs/smart-city/power-meter-and-water-meter":{"count":74132,"formatted":"74.1K","fullFormatted":"74,132","esCount":74132,"subscriptionCount":0},"/docs/ocr/receipt":{"count":96586,"formatted":"96.6K","fullFormatted":"96,586","esCount":96586,"subscriptionCount":0},"/docs/ekyc/face-and-id-card-verification":{"count":43740,"formatted":"43.7K","fullFormatted":"43,740","esCount":43740,"subscriptionCount":0},"/docs/nlp/toxicity-classification":{"count":37263,"formatted":"37.3K","fullFormatted":"37,263","esCount":37263,"subscriptionCount":0},"/docs/ekyc/thai-national-id-card-with-signature":{"count":23165,"formatted":"23.2K","fullFormatted":"23,165","esCount":23165,"subscriptionCount":0},"/docs/llm/openthai2p0-legal":{"count":22953,"formatted":"23K","fullFormatted":"22,953","esCount":22953,"subscriptionCount":0},"/docs/llm/deepseek-v3p2":{"count":22065,"formatted":"22.1K","fullFormatted":"22,065","esCount":22065,"subscriptionCount":0},"/docs/data/holiday/thai":{"count":47846,"formatted":"47.8K","fullFormatted":"47,846","esCount":47846,"subscriptionCount":0},"/docs/speech/text-to-speech/text-to-speech-v2":{"count":18676,"formatted":"18.7K","fullFormatted":"18,676","esCount":18676,"subscriptionCount":0},"/docs/data/legal/thai-legal":{"count":17666,"formatted":"17.7K","fullFormatted":"17,666","esCount":17666,"subscriptionCount":0},"/docs/speech/speech-to-text/chinese/base":{"count":13834,"formatted":"13.8K","fullFormatted":"13,834","esCount":13834,"subscriptionCount":0},"/docs/speech/speech-to-text/english/base":{"count":13194,"formatted":"13.2K","fullFormatted":"13,194","esCount":13194,"subscriptionCount":0},"/docs/llm/deepseek-v4":{"count":12543,"formatted":"12.5K","fullFormatted":"12,543","esCount":12543,"subscriptionCount":0},"/docs/ocr/bank-statement":{"count":12306,"formatted":"12.3K","fullFormatted":"12,306","esCount":12306,"subscriptionCount":0},"/docs/ocr/electricity-bill":{"count":12306,"formatted":"12.3K","fullFormatted":"12,306","esCount":12306,"subscriptionCount":0},"/docs/ocr/water-bill":{"count":12295,"formatted":"12.3K","fullFormatted":"12,295","esCount":12295,"subscriptionCount":0},"/docs/ocr/vehicle-registration":{"count":12292,"formatted":"12.3K","fullFormatted":"12,292","esCount":12292,"subscriptionCount":0},"/docs/ocr/ncb-credit-report":{"count":12286,"formatted":"12.3K","fullFormatted":"12,286","esCount":12286,"subscriptionCount":0},"/docs/ocr/company-certificate":{"count":12276,"formatted":"12.3K","fullFormatted":"12,276","esCount":12276,"subscriptionCount":0},"/docs/speech/speech-to-text/english/pro":{"count":12270,"formatted":"12.3K","fullFormatted":"12,270","esCount":12270,"subscriptionCount":0},"/docs/speech/speech-to-text/pro":{"count":12270,"formatted":"12.3K","fullFormatted":"12,270","esCount":12270,"subscriptionCount":0},"/docs/speech/speech-to-text/chinese/pro":{"count":12270,"formatted":"12.3K","fullFormatted":"12,270","esCount":12270,"subscriptionCount":0},"/docs/core-api":{"count":0,"formatted":"0","fullFormatted":"0","esCount":0,"subscriptionCount":0}},"performance":{"/docs/ekyc/face-verification":{"throughput":[{"date":"2026-08-13","count":12136},{"date":"2026-08-14","count":11905},{"date":"2026-08-15","count":12819},{"date":"2026-08-16","count":14064},{"date":"2026-08-17","count":13179},{"date":"2026-08-18","count":12142},{"date":"2026-08-19","count":11941},{"date":"2026-08-20","count":12414},{"date":"2026-08-21","count":12094},{"date":"2026-08-22","count":14680},{"date":"2026-08-23","count":13527},{"date":"2026-08-24","count":11270},{"date":"2026-08-25","count":11803},{"date":"2026-08-26","count":11565},{"date":"2026-08-27","count":11782},{"date":"2026-08-28","count":12516},{"date":"2026-08-29","count":12698},{"date":"2026-08-30","count":14306},{"date":"2026-08-31","count":16277},{"date":"2026-09-01","count":14383},{"date":"2026-09-02","count":13601},{"date":"2026-09-03","count":12370},{"date":"2026-09-04","count":12191},{"date":"2026-09-05","count":13442},{"date":"2026-09-06","count":15238},{"date":"2026-09-07","count":13559},{"date":"2026-09-08","count":11189},{"date":"2026-09-09","count":11341},{"date":"2026-09-10","count":11856},{"date":"2026-09-11","count":11388}],"latency":[{"date":"2026-08-13","avgLatency":862,"stdDevLatency":213}
8,{"date":"2026-08-14","avgLatency":859,"stdDevLatency":209},{"date":"2026-08-15","avgLatency":844,"stdDevLatency":208},{"date":"2026-08-16","avgLatency":839,"stdDevLatency":204},{"date":"2026-08-17","avgLatency":856,"stdDevLatency":207},{"date":"2026-08-18","avgLatency":850,"stdDevLatency":203},{"date":"2026-08-19","avgLatency":868,"stdDevLatency":210},{"date":"2026-08-20","avgLatency":858,"stdDevLatency":208},{"date":"2026-08-21","avgLatency":849,"stdDevLatency":204},{"date":"2026-08-22","avgLatency":860,"stdDevLatency":243},{"date":"2026-08-23","avgLatency":832,"stdDevLatency":204},{"date":"2026-08-24","avgLatency":863,"stdDevLatency":212},{"date":"2026-08-25","avgLatency":851,"stdDevLatency":209},{"date":"2026-08-26","avgLatency":885,"stdDevLatency":310},{"date":"2026-08-27","avgLatency":865,"stdDevLatency":230},{"date":"2026-08-28","avgLatency":851,"stdDevLatency":211},{"date":"2026-08-29","avgLatency":852,"stdDevLatency":210},{"date":"2026-08-30","avgLatency":853,"stdDevLatency":211},{"date":"2026-08-31","avgLatency":873,"stdDevLatency":229},{"date":"2026-09-01","avgLatency":872,"stdDevLatency":221},{"date":"2026-09-02","avgLatency":876,"stdDevLatency":217},{"date":"2026-09-03","avgLatency":866,"stdDevLatency":219},{"date":"2026-09-04","avgLatency":857,"stdDevLatency":219},{"date":"2026-09-05","avgLatency":873,"stdDevLatency":240},{"date":"2026-09-06","avgLatency":877,"stdDevLatency":223},{"date":"2026-09-07","avgLatency":893,"stdDevLatency":218},{"date":"2026-09-08","avgLatency":888,"stdDevLatency":425},{"date":"2026-09-09","avgLatency":1017,"stdDevLatency":1087},{"date":"2026-09-10","avgLatency":894,"stdDevLatency":370},{"date":"2026-09-11","avgLatency":895,"stdDevLatency":266}],"avgLatency":444,"maxLatency":21548,"minLatency":0},"/docs/ekyc/face-passive-liveness":{"throughput":[{"date":"2026-08-13","count":10372},{"date":"2026-08-14","count":10255},{"date":"2026-08-15","count":11024},{"date":"2026-08-16","count":12027},{"date":"2026-08-17","count":11255},{"date":"2026-08-18","count":10337},{"date":"2026-08-19","count":10277},{"date":"2026-08-20","count":10706},{"date":"2026-08-21","count":10336},{"date":"2026-08-22","count":12563},{"date":"2026-08-23","count":11550},{"date":"2026-08-24","count":9680},{"date":"2026-08-25","count":10029},{"date":"2026-08-26","count":10013},{"date":"2026-08-27","count":10109},{"date":"2026-08-28","count":10645},{"date":"2026-08-29","count":10873},{"date":"2026-08-30","count":12267},{"date":"2026-08-31","count":13888},{"date":"2026-09-01","count":12420},{"date":"2026-09-02","count":11679},{"date":"2026-09-03","count":10387},{"date":"2026-09-04","count":10282},{"date":"2026-09-05","count":11374},{"date":"2026-09-06","count":12875},{"date":"2026-09-07","count":11530},{"date":"2026-09-08","count":8240},{"date":"2026-09-09","count":9632},{"date":"2026-09-10","count":10123},{"date":"2026-09-11","count":9640}],"latency":[{"date":"2026-08-13","avgLatency":229,"stdDevLatency":62},{"date":"2026-08-14","avgLatency":230,"stdDevLatency":48},{"date":"2026-08-15","avgLatency":229,"stdDevLatency":50},{"date":"2026-08-16","avgLatency":228,"stdDevLatency":40},{"date":"2026-08-17","avgLatency":229,"stdDevLatency":39},{"date":"2026-08-18","avgLatency":229,"stdDevLatency":44},{"date":"2026-08-19","avgLatency":229,"stdDevLatency":47},{"date":"2026-08-20","avgLatency":229,"stdDevLatency":44},{"date":"2026-08-21","avgLatency":231,"stdDevLatency":44},{"date":"2026-08-22","avgLatency":233,"stdDevLatency":50},{"date":"2026-08-23","avgLatency":231,"stdDevLatency":50},{"date":"2026-08-24","avgLatency":237,"stdDevLatency":66},{"date":"2026-08-25","avgLatency":231,"stdDevLatency":46},{"date":"2026-08-26","avgLatency":243,"stdDevLatency":186},{"date":"2026-08-27","avgLatency":238,"stdDevLatency":82},{"date":"2026-08-28","avgLatency":236,"stdDevLatency":47},{"date":"2026-08-29","avgLatency":235,"stdDevLatency":45},{"date":"2026-08-30","avgLatency":234,"stdDevLatency":45},{"date":"2026-08-31","avgLatency":236,"stdDevLatency":50},{"date":"2026-09-01","avgLatency":243,"stdDevLatency":68},{"date":"2026-09-02","avgLatency":240,"stdDevLatency":41},{"date":"2026-09-03","avgLatency":237,"stdDevLatency":40}
8,{"date":"2026-09-04","avgLatency":239,"stdDevLatency":72},{"date":"2026-09-05","avgLatency":240,"stdDevLatency":109},{"date":"2026-09-06","avgLatency":238,"stdDevLatency":52},{"date":"2026-09-07","avgLatency":238,"stdDevLatency":55},{"date":"2026-09-08","avgLatency":238,"stdDevLatency":208},{"date":"2026-09-09","avgLatency":344,"stdDevLatency":689},{"date":"2026-09-10","avgLatency":241,"stdDevLatency":144},{"date":"2026-09-11","avgLatency":240,"stdDevLatency":62}],"avgLatency":122,"maxLatency":10676,"minLatency":2},"/docs/ekyc/thai-national-id-card":{"throughput":[{"date":"2026-08-13","count":16820},{"date":"2026-08-14","count":17674},{"date":"2026-08-15","count":16887},{"date":"2026-08-16","count":15159},{"date":"2026-08-17","count":16160},{"date":"2026-08-18","count":16688},{"date":"2026-08-19","count":16498},{"date":"2026-08-20","count":16347},{"date":"2026-08-21","count":17554},{"date":"2026-08-22","count":16948},{"date":"2026-08-23","count":14609},{"date":"2026-08-24","count":16591},{"date":"2026-08-25","count":16939},{"date":"2026-08-26","count":17270},{"date":"2026-08-27","count":17059},{"date":"2026-08-28","count":16813},{"date":"2026-08-29","count":16898},{"date":"2026-08-30","count":14240},{"date":"2026-08-31","count":13154},{"date":"2026-09-01","count":15213},{"date":"2026-09-02","count":10792},{"date":"2026-09-03","count":10777},{"date":"2026-09-04","count":17728},{"date":"2026-09-05","count":17224},{"date":"2026-09-06","count":14858},{"date":"2026-09-07","count":17257},{"date":"2026-09-08","count":16753},{"date":"2026-09-09","count":17745},{"date":"2026-09-10","count":17053},{"date":"2026-09-11","count":17280}],"latency":[{"date":"2026-08-13","avgLatency":1398,"stdDevLatency":1399},{"date":"2026-08-15","avgLatency":608,"stdDevLatency":970},{"date":"2026-08-16","avgLatency":1135,"stdDevLatency":224},{"date":"2026-08-17","avgLatency":2582,"stdDevLatency":399},{"date":"2026-08-18","avgLatency":1728,"stdDevLatency":135},{"date":"2026-08-19","avgLatency":1314,"stdDevLatency":445},{"date":"2026-08-20","avgLatency":1837,"stdDevLatency":221},{"date":"2026-08-21","avgLatency":2017,"stdDevLatency":606},{"date":"2026-08-22","avgLatency":1972,"stdDevLatency":0},{"date":"2026-08-23","avgLatency":258,"stdDevLatency":1129},{"date":"2026-08-24","avgLatency":1877,"stdDevLatency":474},{"date":"2026-08-25","avgLatency":768,"stdDevLatency":970},{"date":"2026-08-26","avgLatency":452,"stdDevLatency":32},{"date":"2026-08-27","avgLatency":1185,"stdDevLatency":1593},{"date":"2026-08-28","avgLatency":562,"stdDevLatency":28},{"date":"2026-08-29","avgLatency":1625,"stdDevLatency":360},{"date":"2026-08-30","avgLatency":1319,"stdDevLatency":0},{"date":"2026-08-31","avgLatency":3004,"stdDevLatency":347},{"date":"2026-09-03","avgLatency":1452,"stdDevLatency":612},{"date":"2026-09-04","avgLatency":1535,"stdDevLatency":228},{"date":"2026-09-05","avgLatency":1083,"stdDevLatency":370},{"date":"2026-09-07","avgLatency":1114,"stdDevLatency":646},{"date":"2026-09-08","avgLatency":2309,"stdDevLatency":262},{"date":"2026-09-09","avgLatency":4081,"stdDevLatency":805},{"date":"2026-09-10","avgLatency":890,"stdDevLatency":231},{"date":"2026-09-11","avgLatency":3151,"stdDevLatency":355}],"avgLatency":1335,"maxLatency":6288,"minLatency":512},"/docs/nlp/translation/multilingual":{"throughput":[{"date":"2026-08-13","count":7838},{"date":"2026-08-14","count":2758},{"date":"2026-08-15","count":1836},{"date":"2026-08-16","count":1224},{"date":"2026-08-17","count":1737},{"date":"2026-08-18","count":2520},{"date":"2026-08-19","count":2781},{"date":"2026-08-20","count":2334},{"date":"2026-08-21","count":1656},{"date":"2026-08-22","count":1876},{"date":"2026-08-23","count":1980},{"date":"2026-08-24","count":2707},{"date":"2026-08-25","count":2224},{"date":"2026-08-26","count":2334},{"date":"2026-08-27","count":2076},{"date":"2026-08-28","count":2196},{"date":"2026-08-29","count":1878},{"date":"2026-08-30","count":1194},{"date":"2026-08-31","count":1444},{"date":"2026-09-01","count":1758},{"date":"2026-09-02","count":2395},{"date":"2026-09-03","count":3148},{"date":"2026-09-04","count":2434},{"date":"2026-09-05","count":2097},{"date":"2026-09-06","count":1296},{"date":"2026-09-07","count":1118},{"date":"2026-09-08","count":2623},{"date":"2026-09-09","count":2629},{"date":"2026-09-10","count":1657},{"date":"2026-09-11","count":1668}],"latency":[{"date":"2026-09-07","avgLatency":8,"stdDevLatency":48}],"avgLatency":0,"maxLatency":1416,"minLatency":0},"/docs/smart-city/license-plate":{"throughput":[{"date":"2026-08-13","count":22022},{"date":"2026-08-14","count":22580},{"date":"2026-08-15","count":23769},{"date":"2026-08-16","count":21834},{"date":"2026-08-17","count":20127},{"date":"2026-08-18","count":21402},{"date":"2026-08-19","count":21172},{"date":"2026-08-20","count":21129},{"date":"2026-08-21","count":22635},{"date":"2026-08-22","count":23696},{"date":"2026-08-23","count":20719},{"date":"2026-08-24","count":21085},{"date":"2026-08-25","count":21608},{"date":"2026-08-26","count":22519},{"date":"2026-08-27","count":21888},{"date":"2026-08-28","count":21749},{"date":"2026-08-29","count":24029},{"date":"2026-08-30","count":20386}
8,{"date":"2026-08-31","count":17001},{"date":"2026-09-01","count":18897},{"date":"2026-09-02","count":12937},{"date":"2026-09-03","count":13353},{"date":"2026-09-04","count":22591},{"date":"2026-09-05","count":24115},{"date":"2026-09-06","count":21213},{"date":"2026-09-07","count":21648},{"date":"2026-09-08","count":21149},{"date":"2026-09-09","count":22414},{"date":"2026-09-10","count":22177},{"date":"2026-09-11","count":22581}],"latency":[{"date":"2026-08-13","avgLatency":184,"stdDevLatency":43},{"date":"2026-08-14","avgLatency":174,"stdDevLatency":47},{"date":"2026-08-15","avgLatency":173,"stdDevLatency":73},{"date":"2026-08-16","avgLatency":158,"stdDevLatency":36},{"date":"2026-08-17","avgLatency":185,"stdDevLatency":54},{"date":"2026-08-18","avgLatency":178,"stdDevLatency":37},{"date":"2026-08-19","avgLatency":192,"stdDevLatency":55},{"date":"2026-08-20","avgLatency":179,"stdDevLatency":55},{"date":"2026-08-21","avgLatency":183,"stdDevLatency":41},{"date":"2026-08-22","avgLatency":150,"stdDevLatency":53},{"date":"2026-08-23","avgLatency":167,"stdDevLatency":26},{"date":"2026-08-24","avgLatency":192,"stdDevLatency":37},{"date":"2026-08-25","avgLatency":189,"stdDevLatency":43},{"date":"2026-08-26","avgLatency":177,"stdDevLatency":38},{"date":"2026-08-27","avgLatency":185,"stdDevLatency":40},{"date":"2026-08-28","avgLatency":176,"stdDevLatency":55},{"date":"2026-08-29","avgLatency":183,"stdDevLatency":45},{"date":"2026-08-30","avgLatency":193,"stdDevLatency":19},{"date":"2026-08-31","avgLatency":177,"stdDevLatency":49},{"date":"2026-09-01","avgLatency":181,"stdDevLatency":55},{"date":"2026-09-02","avgLatency":182,"stdDevLatency":45},{"date":"2026-09-03","avgLatency":180,"stdDevLatency":32},{"date":"2026-09-04","avgLatency":182,"stdDevLatency":35},{"date":"2026-09-05","avgLatency":173,"stdDevLatency":23},{"date":"2026-09-06","avgLatency":170,"stdDevLatency":25},{"date":"2026-09-07","avgLatency":186,"stdDevLatency":51},{"date":"2026-09-08","avgLatency":186,"stdDevLatency":26},{"date":"2026-09-09","avgLatency":185,"stdDevLatency":43},{"date":"2026-09-10","avgLatency":185,"stdDevLatency":45},{"date":"2026-09-11","avgLatency":180,"stdDevLatency":30}],"avgLatency":174,"maxLatency":635,"minLatency":0},"/docs/speech/text-to-speech/text-to-speech-v1":{"throughput":[{"date":"2026-08-13","count":577},{"date":"2026-08-14","count":576},{"date":"2026-08-15","count":576},{"date":"2026-08-16","count":576},{"date":"2026-08-17","count":576},{"date":"2026-08-18","count":576},{"date":"2026-08-19","count":576},{"date":"2026-08-20","count":576},{"date":"2026-08-21","count":579},{"date":"2026-08-22","count":576},{"date":"2026-08-23","count":576},{"date":"2026-08-24","count":576},{"date":"2026-08-25","count":576},{"date":"2026-08-26","count":576},{"date":"2026-08-27","count":575},{"date":"2026-08-28","count":576},{"date":"2026-08-29","count":576},{"date":"2026-08-30","count":576},{"date":"2026-08-31","count":576},{"date":"2026-09-01","count":576},{"date":"2026-09-02","count":577},{"date":"2026-09-03","count":576},{"date":"2026-09-04","count":575},{"date":"2026-09-05","count":576},{"date":"2026-09-06","count":576},{"date":"2026-09-07","count":578},{"date":"2026-09-08","count":806},{"date":"2026-09-09","count":980},{"date":"2026-09-10","count":576},{"date":"2026-09-11","count":576}],"latency":[],"avgLatency":-1,"maxLatency":135,"minLatency":0},"/docs/ekyc/face-detection":{"throughput":[{"date":"2026-08-13","count":313},{"date":"2026-08-14","count":317},{"date":"2026-08-15","count":306},{"date":"2026-08-16","count":341},{"date":"2026-08-17","count":342},{"date":"2026-08-18","count":334},{"date":"2026-08-19","count":333},{"date":"2026-08-20","count":345},{"date":"2026-08-21","count":327},{"date":"2026-08-22","count":319},{"date":"2026-08-23","count":305},{"date":"2026-08-24","count":316},{"date":"2026-08-25","count":341},{"date":"2026-08-26","count":334},{"date":"2026-08-27","count":338},{"date":"2026-08-28","count":318},{"date":"2026-08-29","count":325},{"date":"2026-08-30","count":303},{"date":"2026-08-31","count":305},{"date":"2026-09-01","count":306},{"date":"2026-09-02","count":304},{"date":"2026-09-03","count":325},{"date":"2026-09-04","count":310},{"date":"2026-09-05","count":311},{"date":"2026-09-06","count":309},{"date":"2026-09-07","count":316},{"date":"2026-09-08","count":427},{"date":"2026-09-09","count":533},{"date":"2026-09-10","count":312},{"date":"2026-09-11","count":320}],"latency":[{"date":"2026-08-13","avgLatency":20,"stdDevLatency":5}
8,{"date":"2026-08-14","avgLatency":22,"stdDevLatency":2},{"date":"2026-08-15","avgLatency":15,"stdDevLatency":1},{"date":"2026-08-16","avgLatency":43,"stdDevLatency":5},{"date":"2026-08-17","avgLatency":45,"stdDevLatency":4},{"date":"2026-08-18","avgLatency":44,"stdDevLatency":10},{"date":"2026-08-19","avgLatency":44,"stdDevLatency":4},{"date":"2026-08-20","avgLatency":53,"stdDevLatency":4},{"date":"2026-08-21","avgLatency":40,"stdDevLatency":4},{"date":"2026-08-22","avgLatency":35,"stdDevLatency":5},{"date":"2026-08-23","avgLatency":21,"stdDevLatency":2},{"date":"2026-08-24","avgLatency":33,"stdDevLatency":5},{"date":"2026-08-25","avgLatency":62,"stdDevLatency":9},{"date":"2026-08-26","avgLatency":61,"stdDevLatency":9},{"date":"2026-08-27","avgLatency":68,"stdDevLatency":13},{"date":"2026-08-28","avgLatency":40,"stdDevLatency":5},{"date":"2026-08-29","avgLatency":46,"stdDevLatency":5},{"date":"2026-08-30","avgLatency":24,"stdDevLatency":4},{"date":"2026-08-31","avgLatency":24,"stdDevLatency":3},{"date":"2026-09-01","avgLatency":25,"stdDevLatency":4},{"date":"2026-09-02","avgLatency":27,"stdDevLatency":8},{"date":"2026-09-03","avgLatency":104,"stdDevLatency":88},{"date":"2026-09-04","avgLatency":33,"stdDevLatency":7},{"date":"2026-09-05","avgLatency":34,"stdDevLatency":12},{"date":"2026-09-06","avgLatency":42,"stdDevLatency":10},{"date":"2026-09-07","avgLatency":51,"stdDevLatency":11},{"date":"2026-09-08","avgLatency":46,"stdDevLatency":8},{"date":"2026-09-09","avgLatency":165,"stdDevLatency":154},{"date":"2026-09-10","avgLatency":55,"stdDevLatency":14},{"date":"2026-09-11","avgLatency":85,"stdDevLatency":25}],"avgLatency":257,"maxLatency":9103,"minLatency":0},"/docs/nlp/question/answer":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":295},{"date":"2026-08-17","count":313},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":289},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":308},{"date":"2026-08-25","count":292},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":294},{"date":"2026-08-30","count":298},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":404},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/ocr/document":{"throughput":[{"date":"2026-08-13","count":591},{"date":"2026-08-14","count":588},{"date":"2026-08-15","count":578},{"date":"2026-08-16","count":579},{"date":"2026-08-17","count":602},{"date":"2026-08-18","count":590},{"date":"2026-08-19","count":592},{"date":"2026-08-20","count":595},{"date":"2026-08-21","count":604},{"date":"2026-08-22","count":597},{"date":"2026-08-23","count":594},{"date":"2026-08-24","count":617},{"date":"2026-08-25","count":590},{"date":"2026-08-26","count":586},{"date":"2026-08-27","count":579},{"date":"2026-08-28","count":585},{"date":"2026-08-29","count":578},{"date":"2026-08-30","count":578},{"date":"2026-08-31","count":638},{"date":"2026-09-01","count":592},{"date":"2026-09-02","count":595},{"date":"2026-09-03","count":582},{"date":"2026-09-04","count":584},{"date":"2026-09-05","count":588},{"date":"2026-09-06","count":607},{"date":"2026-09-07","count":658},{"date":"2026-09-08","count":968},{"date":"2026-09-09","count":1003},{"date":"2026-09-10","count":593},{"date":"2026-09-11","count":599}],"latency":[{"date":"2026-08-13","avgLatency":37,"stdDevLatency":31},{"date":"2026-08-14","avgLatency":70,"stdDevLatency":85},{"date":"2026-08-15","avgLatency":18,"stdDevLatency":14},{"date":"2026-08-16","avgLatency":8,"stdDevLatency":5},{"date":"2026-08-17","avgLatency":93,"stdDevLatency":107},{"date":"2026-08-18","avgLatency":34,"stdDevLatency":21},{"date":"2026-08-19","avgLatency":40,"stdDevLatency":29},{"date":"2026-08-20","avgLatency":77,"stdDevLatency":79},{"date":"2026-08-21","avgLatency":174,"stdDevLatency":121},{"date":"2026-08-22","avgLatency":41,"stdDevLatency":277},{"date":"2026-08-23","avgLatency":21,"stdDevLatency":10},{"date":"2026-08-24","avgLatency":25,"stdDevLatency":13},{"date":"2026-08-25","avgLatency":8,"stdDevLatency":4},{"date":"2026-08-26","avgLatency":11,"stdDevLatency":6},{"date":"2026-08-27","avgLatency":5,"stdDevLatency":4},{"date":"2026-08-28","avgLatency":17,"stdDevLatency":23},{"date":"2026-08-31","avgLatency":64,"stdDevLatency":30},{"date":"2026-09-01","avgLatency":14,"stdDevLatency":10},{"date":"2026-09-02","avgLatency":13,"stdDevLatency":8},{"date":"2026-09-03","avgLatency":21,"stdDevLatency":26}
8,{"date":"2026-09-04","avgLatency":12,"stdDevLatency":14},{"date":"2026-09-05","avgLatency":20,"stdDevLatency":28},{"date":"2026-09-06","avgLatency":40,"stdDevLatency":36},{"date":"2026-09-07","avgLatency":116,"stdDevLatency":97},{"date":"2026-09-08","avgLatency":1096,"stdDevLatency":2281},{"date":"2026-09-09","avgLatency":20,"stdDevLatency":20},{"date":"2026-09-10","avgLatency":20,"stdDevLatency":27},{"date":"2026-09-11","avgLatency":14,"stdDevLatency":10}],"avgLatency":794,"maxLatency":99801,"minLatency":0},"/docs/ekyc/thai-driver-license":{"throughput":[{"date":"2026-08-13","count":13349},{"date":"2026-08-14","count":13985},{"date":"2026-08-15","count":14246},{"date":"2026-08-16","count":13011},{"date":"2026-08-17","count":12711},{"date":"2026-08-18","count":13284},{"date":"2026-08-19","count":13472},{"date":"2026-08-20","count":13460},{"date":"2026-08-21","count":14222},{"date":"2026-08-22","count":14258},{"date":"2026-08-23","count":12512},{"date":"2026-08-24","count":13514},{"date":"2026-08-25","count":13446},{"date":"2026-08-26","count":13938},{"date":"2026-08-27","count":13396},{"date":"2026-08-28","count":13311},{"date":"2026-08-29","count":14009},{"date":"2026-08-30","count":12267},{"date":"2026-08-31","count":10762},{"date":"2026-09-01","count":11853},{"date":"2026-09-02","count":8335},{"date":"2026-09-03","count":8226},{"date":"2026-09-04","count":14274},{"date":"2026-09-05","count":14050},{"date":"2026-09-06","count":12927},{"date":"2026-09-07","count":13524},{"date":"2026-09-08","count":13271},{"date":"2026-09-09","count":14111},{"date":"2026-09-10","count":13663},{"date":"2026-09-11","count":13857}],"latency":[{"date":"2026-08-22","avgLatency":1,"stdDevLatency":38}],"avgLatency":-1,"maxLatency":647,"minLatency":0},"/docs/smart-city/automatic-route-optimization":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":289},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":293},{"date":"2026-09-08","count":404},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":289},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-09-07","avgLatency":7,"stdDevLatency":101}],"avgLatency":-1,"maxLatency":1285,"minLatency":0},"/docs/speech/speech-to-text/base":{"throughput":[{"date":"2026-08-13","count":294},{"date":"2026-08-14","count":289},{"date":"2026-08-15","count":293},{"date":"2026-08-16","count":291},{"date":"2026-08-17","count":294},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":289},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":291},{"date":"2026-08-24","count":292},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":291},{"date":"2026-08-29","count":339},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":290},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":289},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":289}],"latency":[{"date":"2026-08-13","avgLatency":17,"stdDevLatency":139}
8,{"date":"2026-08-14","avgLatency":3,"stdDevLatency":69},{"date":"2026-08-15","avgLatency":9,"stdDevLatency":81},{"date":"2026-08-16","avgLatency":4,"stdDevLatency":48},{"date":"2026-08-17","avgLatency":54,"stdDevLatency":798},{"date":"2026-08-23","avgLatency":4,"stdDevLatency":45},{"date":"2026-08-24","avgLatency":59,"stdDevLatency":513},{"date":"2026-08-28","avgLatency":317,"stdDevLatency":3695},{"date":"2026-08-29","avgLatency":367,"stdDevLatency":1204},{"date":"2026-09-02","avgLatency":4,"stdDevLatency":64},{"date":"2026-09-04","avgLatency":45,"stdDevLatency":586},{"date":"2026-09-11","avgLatency":2,"stdDevLatency":45}],"avgLatency":30,"maxLatency":58471,"minLatency":0},"/docs/ekyc/book-bank":{"throughput":[{"date":"2026-08-13","count":11},{"date":"2026-08-14","count":17},{"date":"2026-08-15","count":21},{"date":"2026-08-16","count":13},{"date":"2026-08-17","count":17},{"date":"2026-08-18","count":12},{"date":"2026-08-19","count":23},{"date":"2026-08-20","count":16},{"date":"2026-08-21","count":8},{"date":"2026-08-22","count":49},{"date":"2026-08-23","count":27},{"date":"2026-08-24","count":32},{"date":"2026-08-25","count":15},{"date":"2026-08-26","count":18},{"date":"2026-08-27","count":30},{"date":"2026-08-28","count":57},{"date":"2026-08-29","count":7},{"date":"2026-08-30","count":11},{"date":"2026-08-31","count":22},{"date":"2026-09-01","count":31},{"date":"2026-09-02","count":59},{"date":"2026-09-03","count":12},{"date":"2026-09-04","count":40},{"date":"2026-09-05","count":8},{"date":"2026-09-06","count":51},{"date":"2026-09-07","count":12},{"date":"2026-09-08","count":29},{"date":"2026-09-09","count":22},{"date":"2026-09-10","count":28},{"date":"2026-09-11","count":12}],"latency":[{"date":"2026-08-13","avgLatency":530,"stdDevLatency":600},{"date":"2026-08-14","avgLatency":450,"stdDevLatency":407},{"date":"2026-08-15","avgLatency":721,"stdDevLatency":790},{"date":"2026-08-16","avgLatency":492,"stdDevLatency":599},{"date":"2026-08-17","avgLatency":903,"stdDevLatency":1245},{"date":"2026-08-18","avgLatency":584,"stdDevLatency":622},{"date":"2026-08-19","avgLatency":847,"stdDevLatency":579},{"date":"2026-08-20","avgLatency":753,"stdDevLatency":1029},{"date":"2026-08-21","avgLatency":2357,"stdDevLatency":3500},{"date":"2026-08-22","avgLatency":676,"stdDevLatency":1377},{"date":"2026-08-23","avgLatency":136,"stdDevLatency":166},{"date":"2026-08-24","avgLatency":136,"stdDevLatency":211},{"date":"2026-08-25","avgLatency":111,"stdDevLatency":126},{"date":"2026-08-26","avgLatency":122,"stdDevLatency":162},{"date":"2026-08-27","avgLatency":156,"stdDevLatency":195},{"date":"2026-08-28","avgLatency":214,"stdDevLatency":275},{"date":"2026-08-29","avgLatency":180,"stdDevLatency":288},{"date":"2026-08-30","avgLatency":108,"stdDevLatency":206},{"date":"2026-08-31","avgLatency":217,"stdDevLatency":279},{"date":"2026-09-01","avgLatency":256,"stdDevLatency":345},{"date":"2026-09-02","avgLatency":342,"stdDevLatency":381},{"date":"2026-09-03","avgLatency":156,"stdDevLatency":166},{"date":"2026-09-04","avgLatency":204,"stdDevLatency":243},{"date":"2026-09-05","avgLatency":408,"stdDevLatency":510},{"date":"2026-09-06","avgLatency":559,"stdDevLatency":848},{"date":"2026-09-07","avgLatency":291,"stdDevLatency":374},{"date":"2026-09-08","avgLatency":269,"stdDevLatency":425},{"date":"2026-09-09","avgLatency":826,"stdDevLatency":1091},{"date":"2026-09-10","avgLatency":606,"stdDevLatency":1034},{"date":"2026-09-11","avgLatency":177,"stdDevLatency":225}],"avgLatency":540,"maxLatency":10251,"minLatency":163},"/docs/llm/thanoy-legal":{"throughput":[{"date":"2026-08-13","count":289},{"date":"2026-08-14","count":289},{"date":"2026-08-15","count":290},{"date":"2026-08-16","count":289},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":294},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":289},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":293},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":293},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":290},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":492},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":290}
8],"latency":[{"date":"2026-08-14","avgLatency":40,"stdDevLatency":689},{"date":"2026-08-15","avgLatency":17,"stdDevLatency":300},{"date":"2026-08-16","avgLatency":18,"stdDevLatency":315},{"date":"2026-08-27","avgLatency":46,"stdDevLatency":569},{"date":"2026-09-07","avgLatency":21,"stdDevLatency":376},{"date":"2026-09-09","avgLatency":40,"stdDevLatency":698}],"avgLatency":6,"maxLatency":14295,"minLatency":0},"/docs/ekyc/passport":{"throughput":[{"date":"2026-08-13","count":69},{"date":"2026-08-14","count":68},{"date":"2026-08-15","count":73},{"date":"2026-08-16","count":62},{"date":"2026-08-17","count":104},{"date":"2026-08-18","count":71},{"date":"2026-08-19","count":97},{"date":"2026-08-20","count":99},{"date":"2026-08-21","count":68},{"date":"2026-08-22","count":54},{"date":"2026-08-23","count":58},{"date":"2026-08-24","count":64},{"date":"2026-08-25","count":85},{"date":"2026-08-26","count":121},{"date":"2026-08-27","count":59},{"date":"2026-08-28","count":71},{"date":"2026-08-29","count":74},{"date":"2026-08-30","count":83},{"date":"2026-08-31","count":51},{"date":"2026-09-01","count":80},{"date":"2026-09-02","count":94},{"date":"2026-09-03","count":75},{"date":"2026-09-04","count":95},{"date":"2026-09-05","count":87},{"date":"2026-09-06","count":63},{"date":"2026-09-07","count":99},{"date":"2026-09-08","count":148},{"date":"2026-09-09","count":80},{"date":"2026-09-10","count":95},{"date":"2026-09-11","count":104}],"latency":[{"date":"2026-08-13","avgLatency":1652,"stdDevLatency":1115},{"date":"2026-08-14","avgLatency":1993,"stdDevLatency":1715},{"date":"2026-08-15","avgLatency":1185,"stdDevLatency":725},{"date":"2026-08-16","avgLatency":2133,"stdDevLatency":1521},{"date":"2026-08-17","avgLatency":1159,"stdDevLatency":1239},{"date":"2026-08-18","avgLatency":1873,"stdDevLatency":1684},{"date":"2026-08-19","avgLatency":1777,"stdDevLatency":1265},{"date":"2026-08-20","avgLatency":1438,"stdDevLatency":2124},{"date":"2026-08-21","avgLatency":1895,"stdDevLatency":1288},{"date":"2026-08-22","avgLatency":1517,"stdDevLatency":676},{"date":"2026-08-23","avgLatency":2014,"stdDevLatency":3128},{"date":"2026-08-24","avgLatency":266,"stdDevLatency":527},{"date":"2026-08-25","avgLatency":465,"stdDevLatency":160},{"date":"2026-08-26","avgLatency":541,"stdDevLatency":291},{"date":"2026-08-27","avgLatency":466,"stdDevLatency":136},{"date":"2026-08-28","avgLatency":424,"stdDevLatency":120},{"date":"2026-08-29","avgLatency":430,"stdDevLatency":62},{"date":"2026-08-30","avgLatency":413,"stdDevLatency":104},{"date":"2026-09-01","avgLatency":303,"stdDevLatency":112},{"date":"2026-09-02","avgLatency":382,"stdDevLatency":181},{"date":"2026-09-03","avgLatency":439,"stdDevLatency":100},{"date":"2026-09-04","avgLatency":485,"stdDevLatency":64},{"date":"2026-09-05","avgLatency":448,"stdDevLatency":130},{"date":"2026-09-06","avgLatency":466,"stdDevLatency":148},{"date":"2026-09-07","avgLatency":514,"stdDevLatency":200},{"date":"2026-09-08","avgLatency":569,"stdDevLatency":235},{"date":"2026-09-09","avgLatency":410,"stdDevLatency":92},{"date":"2026-09-10","avgLatency":486,"stdDevLatency":182},{"date":"2026-09-11","avgLatency":485,"stdDevLatency":181}],"avgLatency":824,"maxLatency":13428,"minLatency":0}
8,"/docs/speech/speech-to-text/realtime":{"throughput":[{"date":"2026-09-02","count":6},{"date":"2026-09-03","count":3},{"date":"2026-09-04","count":2},{"date":"2026-09-05","count":2}],"latency":[{"date":"2026-09-02","avgLatency":29,"stdDevLatency":3},{"date":"2026-09-03","avgLatency":11,"stdDevLatency":0},{"date":"2026-09-04","avgLatency":11,"stdDevLatency":2},{"date":"2026-09-05","avgLatency":12,"stdDevLatency":1}],"avgLatency":19,"maxLatency":32,"minLatency":9},"/docs/smart-city/power-meter-and-water-meter":{"throughput":[{"date":"2026-08-13","count":2},{"date":"2026-08-14","count":0},{"date":"2026-08-15","count":0},{"date":"2026-08-16","count":0},{"date":"2026-08-17","count":0},{"date":"2026-08-18","count":1},{"date":"2026-08-19","count":0},{"date":"2026-08-20","count":0},{"date":"2026-08-21","count":0},{"date":"2026-08-22","count":0},{"date":"2026-08-23","count":0},{"date":"2026-08-24","count":0},{"date":"2026-08-25","count":5},{"date":"2026-08-26","count":0},{"date":"2026-08-27","count":0},{"date":"2026-08-28","count":0},{"date":"2026-08-29","count":0},{"date":"2026-08-30","count":0},{"date":"2026-08-31","count":0},{"date":"2026-09-01","count":0},{"date":"2026-09-02","count":0},{"date":"2026-09-03","count":0},{"date":"2026-09-04","count":8},{"date":"2026-09-05","count":5},{"date":"2026-09-06","count":0},{"date":"2026-09-07","count":0},{"date":"2026-09-08","count":1},{"date":"2026-09-09","count":1}],"latency":[{"date":"2026-09-04","avgLatency":1234,"stdDevLatency":1135},{"date":"2026-09-05","avgLatency":533,"stdDevLatency":645}],"avgLatency":545,"maxLatency":3716,"minLatency":0},"/docs/ocr/receipt":{"throughput":[{"date":"2026-08-13","count":300},{"date":"2026-08-14","count":299},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":309},{"date":"2026-08-18","count":290},{"date":"2026-08-19","count":292},{"date":"2026-08-20","count":298},{"date":"2026-08-21","count":307},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":292},{"date":"2026-08-25","count":292},{"date":"2026-08-26","count":290},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":300},{"date":"2026-09-01","count":290},{"date":"2026-09-02","count":291},{"date":"2026-09-03","count":292},{"date":"2026-09-04","count":290},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":289},{"date":"2026-09-07","count":292},{"date":"2026-09-08","count":517},{"date":"2026-09-09","count":498},{"date":"2026-09-10","count":297},{"date":"2026-09-11","count":303}],"latency":[{"date":"2026-08-13","avgLatency":383,"stdDevLatency":2338},{"date":"2026-08-14","avgLatency":224,"stdDevLatency":1803},{"date":"2026-08-17","avgLatency":576,"stdDevLatency":3693},{"date":"2026-08-18","avgLatency":99,"stdDevLatency":1209},{"date":"2026-08-19","avgLatency":240,"stdDevLatency":2068},{"date":"2026-08-20","avgLatency":671,"stdDevLatency":3899},{"date":"2026-08-21","avgLatency":1209,"stdDevLatency":6005},{"date":"2026-08-24","avgLatency":130,"stdDevLatency":1118},{"date":"2026-08-26","avgLatency":72,"stdDevLatency":872},{"date":"2026-08-27","avgLatency":29,"stdDevLatency":506},{"date":"2026-08-31","avgLatency":492,"stdDevLatency":2448},{"date":"2026-09-01","avgLatency":57,"stdDevLatency":703},{"date":"2026-09-02","avgLatency":115,"stdDevLatency":1150},{"date":"2026-09-03","avgLatency":137,"stdDevLatency":1175},{"date":"2026-09-04","avgLatency":76,"stdDevLatency":924},{"date":"2026-09-07","avgLatency":102,"stdDevLatency":1014},{"date":"2026-09-08","avgLatency":3223,"stdDevLatency":6147},{"date":"2026-09-09","avgLatency":235,"stdDevLatency":4229},{"date":"2026-09-10","avgLatency":326,"stdDevLatency":1912},{"date":"2026-09-11","avgLatency":336,"stdDevLatency":1768}],"avgLatency":367,"maxLatency":92858,"minLatency":0},"/docs/nlp/toxicity-classification":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/llm/openthai2p0-legal":{"throughput":[{"date":"2026-08-13","count":299},{"date":"2026-08-14","count":291},{"date":"2026-08-15","count":304},{"date":"2026-08-16","count":292},{"date":"2026-08-17","count":292},{"date":"2026-08-18","count":328},{"date":"2026-08-19","count":381},{"date":"2026-08-20","count":299},{"date":"2026-08-21","count":320},{"date":"2026-08-22","count":308},{"date":"2026-08-23","count":291},{"date":"2026-08-24","count":301},{"date":"2026-08-25","count":542},{"date":"2026-08-26","count":371},{"date":"2026-08-27","count":411},{"date":"2026-08-28","count":375},{"date":"2026-08-29","count":303},{"date":"2026-08-30","count":393},{"date":"2026-08-31","count":316},{"date":"2026-09-01","count":1406},{"date":"2026-09-02","count":307},{"date":"2026-09-03","count":398},{"date":"2026-09-04","count":4491},{"date":"2026-09-05","count":446},{"date":"2026-09-06","count":291},{"date":"2026-09-07","count":322},{"date":"2026-09-08","count":458},{"date":"2026-09-09","count":1022},{"date":"2026-09-10","count":426}
8,{"date":"2026-09-11","count":1783}],"latency":[{"date":"2026-08-13","avgLatency":16,"stdDevLatency":106},{"date":"2026-08-14","avgLatency":19,"stdDevLatency":314},{"date":"2026-08-15","avgLatency":56,"stdDevLatency":648},{"date":"2026-08-16","avgLatency":2,"stdDevLatency":36},{"date":"2026-08-17","avgLatency":4,"stdDevLatency":65},{"date":"2026-08-18","avgLatency":31,"stdDevLatency":126},{"date":"2026-08-19","avgLatency":385,"stdDevLatency":937},{"date":"2026-08-20","avgLatency":24,"stdDevLatency":151},{"date":"2026-08-21","avgLatency":71,"stdDevLatency":241},{"date":"2026-08-22","avgLatency":476,"stdDevLatency":6497},{"date":"2026-08-23","avgLatency":6,"stdDevLatency":88},{"date":"2026-08-24","avgLatency":75,"stdDevLatency":535},{"date":"2026-08-25","avgLatency":493,"stdDevLatency":878},{"date":"2026-08-26","avgLatency":405,"stdDevLatency":1212},{"date":"2026-08-27","avgLatency":232,"stdDevLatency":443},{"date":"2026-08-28","avgLatency":346,"stdDevLatency":1248},{"date":"2026-08-29","avgLatency":36,"stdDevLatency":189},{"date":"2026-08-30","avgLatency":198,"stdDevLatency":839},{"date":"2026-08-31","avgLatency":150,"stdDevLatency":634},{"date":"2026-09-01","avgLatency":1232,"stdDevLatency":2596},{"date":"2026-09-02","avgLatency":47,"stdDevLatency":223},{"date":"2026-09-03","avgLatency":313,"stdDevLatency":970},{"date":"2026-09-04","avgLatency":1143,"stdDevLatency":865},{"date":"2026-09-05","avgLatency":1970,"stdDevLatency":4207},{"date":"2026-09-06","avgLatency":7,"stdDevLatency":98},{"date":"2026-09-07","avgLatency":146,"stdDevLatency":627},{"date":"2026-09-08","avgLatency":136,"stdDevLatency":390},{"date":"2026-09-09","avgLatency":3639,"stdDevLatency":7593},{"date":"2026-09-10","avgLatency":751,"stdDevLatency":1901},{"date":"2026-09-11","avgLatency":3115,"stdDevLatency":4146}],"avgLatency":1050,"maxLatency":113887,"minLatency":0},"/docs/llm/deepseek-v3p2":{"throughput":[{"date":"2026-08-13","count":291},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":289},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":290},{"date":"2026-09-07","count":293},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-08-13","avgLatency":1,"stdDevLatency":16}],"avgLatency":-1,"maxLatency":199,"minLatency":0},"/docs/data/holiday/thai":{"throughput":[{"date":"2026-08-13","count":1},{"date":"2026-08-14","count":1},{"date":"2026-08-15","count":1},{"date":"2026-08-16","count":1},{"date":"2026-08-17","count":3},{"date":"2026-08-18","count":1},{"date":"2026-08-19","count":1},{"date":"2026-08-20","count":1},{"date":"2026-08-21","count":1},{"date":"2026-08-22","count":1},{"date":"2026-08-23","count":1},{"date":"2026-08-24","count":1},{"date":"2026-08-25","count":1},{"date":"2026-08-26","count":1},{"date":"2026-08-27","count":7},{"date":"2026-08-28","count":1},{"date":"2026-08-29","count":1},{"date":"2026-08-30","count":1},{"date":"2026-08-31","count":1},{"date":"2026-09-01","count":1},{"date":"2026-09-02","count":1},{"date":"2026-09-03","count":5},{"date":"2026-09-04","count":1},{"date":"2026-09-05","count":3},{"date":"2026-09-06","count":1},{"date":"2026-09-07","count":1},{"date":"2026-09-08","count":2},{"date":"2026-09-09","count":1},{"date":"2026-09-10","count":1},{"date":"2026-09-11","count":1}],"latency":[{"date":"2026-08-13","avgLatency":101,"stdDevLatency":0}
8,{"date":"2026-08-14","avgLatency":74,"stdDevLatency":0},{"date":"2026-08-15","avgLatency":93,"stdDevLatency":0},{"date":"2026-08-16","avgLatency":84,"stdDevLatency":0},{"date":"2026-08-17","avgLatency":278,"stdDevLatency":0},{"date":"2026-08-18","avgLatency":140,"stdDevLatency":0},{"date":"2026-08-19","avgLatency":871,"stdDevLatency":0},{"date":"2026-08-20","avgLatency":888,"stdDevLatency":0},{"date":"2026-08-21","avgLatency":88,"stdDevLatency":0},{"date":"2026-08-22","avgLatency":269,"stdDevLatency":0},{"date":"2026-08-23","avgLatency":124,"stdDevLatency":0},{"date":"2026-08-24","avgLatency":468,"stdDevLatency":0},{"date":"2026-08-25","avgLatency":1162,"stdDevLatency":0},{"date":"2026-08-26","avgLatency":157,"stdDevLatency":0},{"date":"2026-08-27","avgLatency":35,"stdDevLatency":26},{"date":"2026-08-28","avgLatency":117,"stdDevLatency":0},{"date":"2026-08-29","avgLatency":309,"stdDevLatency":0},{"date":"2026-08-30","avgLatency":269,"stdDevLatency":0},{"date":"2026-08-31","avgLatency":130,"stdDevLatency":0},{"date":"2026-09-01","avgLatency":93,"stdDevLatency":0},{"date":"2026-09-02","avgLatency":151,"stdDevLatency":0},{"date":"2026-09-03","avgLatency":32,"stdDevLatency":0},{"date":"2026-09-04","avgLatency":185,"stdDevLatency":0},{"date":"2026-09-05","avgLatency":95,"stdDevLatency":0},{"date":"2026-09-06","avgLatency":192,"stdDevLatency":0},{"date":"2026-09-07","avgLatency":282,"stdDevLatency":0},{"date":"2026-09-08","avgLatency":271,"stdDevLatency":263},{"date":"2026-09-09","avgLatency":537,"stdDevLatency":0},{"date":"2026-09-10","avgLatency":534,"stdDevLatency":0},{"date":"2026-09-11","avgLatency":549,"stdDevLatency":0}],"avgLatency":159,"maxLatency":1162,"minLatency":8},"/docs/data/legal/thai-legal":{"throughput":[{"date":"2026-08-13","count":389},{"date":"2026-08-14","count":455},{"date":"2026-08-15","count":334},{"date":"2026-08-16","count":354},{"date":"2026-08-17","count":345},{"date":"2026-08-18","count":317},{"date":"2026-08-19","count":323},{"date":"2026-08-20","count":382},{"date":"2026-08-21","count":348},{"date":"2026-08-22","count":371},{"date":"2026-08-23","count":354},{"date":"2026-08-24","count":358},{"date":"2026-08-25","count":383},{"date":"2026-08-26","count":354},{"date":"2026-08-27","count":428},{"date":"2026-08-28","count":509},{"date":"2026-08-29","count":411},{"date":"2026-08-30","count":370},{"date":"2026-08-31","count":397},{"date":"2026-09-01","count":432},{"date":"2026-09-02","count":379},{"date":"2026-09-03","count":386},{"date":"2026-09-04","count":380},{"date":"2026-09-05","count":371},{"date":"2026-09-06","count":383},{"date":"2026-09-07","count":444},{"date":"2026-09-08","count":728},{"date":"2026-09-09","count":1090},{"date":"2026-09-10","count":877},{"date":"2026-09-11","count":872}],"latency":[{"date":"2026-08-13","avgLatency":142,"stdDevLatency":177},{"date":"2026-08-14","avgLatency":528,"stdDevLatency":302},{"date":"2026-08-15","avgLatency":159,"stdDevLatency":72},{"date":"2026-08-16","avgLatency":210,"stdDevLatency":93},{"date":"2026-08-17","avgLatency":103,"stdDevLatency":64},{"date":"2026-08-18","avgLatency":154,"stdDevLatency":123},{"date":"2026-08-19","avgLatency":54,"stdDevLatency":65},{"date":"2026-08-20","avgLatency":130,"stdDevLatency":99},{"date":"2026-08-21","avgLatency":74,"stdDevLatency":86},{"date":"2026-08-22","avgLatency":139,"stdDevLatency":245},{"date":"2026-08-23","avgLatency":115,"stdDevLatency":254},{"date":"2026-08-24","avgLatency":52,"stdDevLatency":76},{"date":"2026-08-25","avgLatency":20,"stdDevLatency":44},{"date":"2026-08-26","avgLatency":66,"stdDevLatency":108},{"date":"2026-08-27","avgLatency":149,"stdDevLatency":142},{"date":"2026-08-28","avgLatency":586,"stdDevLatency":1467},{"date":"2026-08-29","avgLatency":225,"stdDevLatency":142},{"date":"2026-08-30","avgLatency":80,"stdDevLatency":53},{"date":"2026-08-31","avgLatency":132,"stdDevLatency":99},{"date":"2026-09-01","avgLatency":376,"stdDevLatency":267},{"date":"2026-09-02","avgLatency":154,"stdDevLatency":77},{"date":"2026-09-03","avgLatency":76,"stdDevLatency":52},{"date":"2026-09-04","avgLatency":135,"stdDevLatency":63},{"date":"2026-09-05","avgLatency":85,"stdDevLatency":50},{"date":"2026-09-06","avgLatency":39,"stdDevLatency":48},{"date":"2026-09-07","avgLatency":341,"stdDevLatency":313},{"date":"2026-09-08","avgLatency":135,"stdDevLatency":87},{"date":"2026-09-09","avgLatency":119,"stdDevLatency":69},{"date":"2026-09-10","avgLatency":147,"stdDevLatency":106},{"date":"2026-09-11","avgLatency":135,"stdDevLatency":282}],"avgLatency":1010,"maxLatency":23067,"minLatency":18}
8,"/docs/speech/speech-to-text/chinese/base":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/speech/speech-to-text/english/base":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/llm/deepseek-v4":{"throughput":[{"date":"2026-08-13","count":293},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":289},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":289},{"date":"2026-08-21","count":290},{"date":"2026-08-22","count":289},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":289},{"date":"2026-08-27","count":290},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":290},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":289},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":294},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":289}],"latency":[{"date":"2026-08-13","avgLatency":1,"stdDevLatency":18}],"avgLatency":-1,"maxLatency":153,"minLatency":0},"/docs/ocr/bank-statement":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":292},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":289},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":412},{"date":"2026-09-09","count":492},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-08-23","avgLatency":207,"stdDevLatency":2507},{"date":"2026-09-08","avgLatency":1968,"stdDevLatency":14928}],"avgLatency":95,"maxLatency":179842,"minLatency":0},"/docs/ocr/electricity-bill":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":289},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":289},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":292},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":407},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":289}],"latency":[{"date":"2026-09-05","avgLatency":182,"stdDevLatency":2201},{"date":"2026-09-08","avgLatency":147,"stdDevLatency":2109}],"avgLatency":12,"maxLatency":32547,"minLatency":0},"/docs/ocr/water-bill":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":291},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":289},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":289},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":292},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-08-23","avgLatency":29,"stdDevLatency":512},{"date":"2026-09-05","avgLatency":53,"stdDevLatency":652}],"avgLatency":2,"maxLatency":8748,"minLatency":0},"/docs/ocr/vehicle-registration":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":289},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":290},{"date":"2026-08-23","count":303},{"date":"2026-08-24","count":289},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":289},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-08-22","avgLatency":43,"stdDevLatency":744},{"date":"2026-08-23","avgLatency":702,"stdDevLatency":3781},{"date":"2026-08-24","avgLatency":123,"stdDevLatency":2097}],"avgLatency":28,"maxLatency":35703,"minLatency":0},"/docs/ocr/ncb-credit-report":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":289},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":290},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[{"date":"2026-09-05","avgLatency":29,"stdDevLatency":512}],"avgLatency":0,"maxLatency":8740,"minLatency":0},"/docs/ocr/company-certificate":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":287},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":289},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":491},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":289}],"latency":[],"avgLatency":-1,"maxLatency":15,"minLatency":0}
8,"/docs/speech/speech-to-text/english/pro":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/speech/speech-to-text/pro":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0},"/docs/speech/speech-to-text/chinese/pro":{"throughput":[{"date":"2026-08-13","count":288},{"date":"2026-08-14","count":288},{"date":"2026-08-15","count":288},{"date":"2026-08-16","count":288},{"date":"2026-08-17","count":288},{"date":"2026-08-18","count":288},{"date":"2026-08-19","count":288},{"date":"2026-08-20","count":288},{"date":"2026-08-21","count":288},{"date":"2026-08-22","count":288},{"date":"2026-08-23","count":288},{"date":"2026-08-24","count":288},{"date":"2026-08-25","count":288},{"date":"2026-08-26","count":288},{"date":"2026-08-27","count":288},{"date":"2026-08-28","count":288},{"date":"2026-08-29","count":288},{"date":"2026-08-30","count":288},{"date":"2026-08-31","count":288},{"date":"2026-09-01","count":288},{"date":"2026-09-02","count":288},{"date":"2026-09-03","count":288},{"date":"2026-09-04","count":287},{"date":"2026-09-05","count":288},{"date":"2026-09-06","count":288},{"date":"2026-09-07","count":289},{"date":"2026-09-08","count":403},{"date":"2026-09-09","count":490},{"date":"2026-09-10","count":288},{"date":"2026-09-11","count":288}],"latency":[],"avgLatency":-1,"maxLatency":-1,"minLatency":0}},"overallThroughput":[{"date":"2026-08-13","count":90288},{"date":"2026-08-14","count":86955},{"date":"2026-08-15","count":88253},{"date":"2026-08-16","count":85020},{"date":"2026-08-17","count":82975},{"date":"2026-08-18","count":84083},{"date":"2026-08-19","count":83946},{"date":"2026-08-20","count":84186},{"date":"2026-08-21","count":86246},{"date":"2026-08-22","count":91772},{"date":"2026-08-23","count":82601},{"date":"2026-08-24","count":82613},{"date":"2026-08-25","count":84072},{"date":"2026-08-26","count":85475},{"date":"2026-08-27","count":84209},{"date":"2026-08-28","count":85197},{"date":"2026-08-29","count":88189},{"date":"2026-08-30","count":82458},{"date":"2026-08-31","count":80316},{"date":"2026-09-01","count":83423},{"date":"2026-09-02","count":67544},{"date":"2026-09-03","count":66101},{"date":"2026-09-04","count":91446},{"date":"2026-09-05","count":90181},{"date":"2026-09-06","count":86163},{"date":"2026-09-07","count":86574},{"date":"2026-09-08","count":84578},{"date":"2026-09-09","count":91933},{"date":"2026-09-10","count":84919},{"date":"2026-09-11","count":86174}]}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.