ID Analyzer Scanner API
Document scanning and OCR operations
Document scanning and OCR operations
openapi: 3.0.3
info:
title: ID Analyzer Account Scanner API
description: REST API for scanning and performing OCR on government-issued identity documents including passports, driver licenses, and national ID cards from 190+ countries. Extracts structured data fields, performs anti-forgery analysis with 20+ fraud detection models, and validates MRZ codes, holograms, and watermarks. Supports full KYC scan with biometric face verification, quick OCR scan, and very-quick OCR scan variants.
version: '2.0'
contact:
name: ID Analyzer Support
url: https://www.idanalyzer.com/contact-us
email: support@idanalyzer.com
termsOfService: https://www.idanalyzer.com/en/terms-of-service
license:
name: Proprietary
url: https://www.idanalyzer.com
servers:
- url: https://api2.idanalyzer.com
description: US Region
- url: https://api2-eu.idanalyzer.com
description: EU Region
security:
- ApiKeyHeader: []
tags:
- name: Scanner
description: Document scanning and OCR operations
paths:
/scan:
post:
tags:
- Scanner
operationId: scan
summary: Full KYC document scan
description: Initiate a new identity document scan and ID face verification transaction by providing input images. Performs OCR extraction, anti-forgery analysis, biometric face match, and produces a KYC decision (accept/review/reject). Requires a KYC profile to be specified.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ScanRequest'
responses:
'200':
description: Scan result with extracted data and KYC decision
content:
application/json:
schema:
$ref: '#/components/schemas/ScanResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
/quickscan:
post:
tags:
- Scanner
operationId: quickScan
summary: Quick OCR document scan
description: Initiate a quick identity document OCR scan by providing input images. Returns extracted document data without full fraud analysis. Optionally caches images for 24 hours for subsequent full scans.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/QuickScanRequest'
responses:
'200':
description: Quick scan result with extracted OCR data
content:
application/json:
schema:
$ref: '#/components/schemas/QuickScanResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/veryquickscan:
post:
tags:
- Scanner
operationId: veryQuickScan
summary: Very quick OCR document scan
description: Initiate a very quick (fast) identity document OCR scan. Faster but less thorough than quickScan, useful for high-throughput OCR-only use cases. Optionally caches images for 24 hours.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/QuickScanRequest'
responses:
'200':
description: Very quick scan result with extracted OCR data
content:
application/json:
schema:
$ref: '#/components/schemas/QuickScanResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
components:
responses:
RateLimited:
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized - invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
QuickScanRequest:
type: object
required:
- document
properties:
document:
type: string
description: Front of document image (file path, base64, or URL)
documentBack:
type: string
description: Back of document image (file path, base64, or URL)
saveFile:
type: boolean
description: Cache uploaded images for 24 hours and return a cache reference
default: false
ScanResponse:
type: object
properties:
decision:
type: string
enum:
- accept
- review
- reject
description: Final KYC decision
transactionId:
type: string
description: Unique transaction identifier
data:
type: object
description: Extracted document data fields
additionalProperties: true
warning:
type: array
description: List of validation warnings
items:
type: object
properties:
code:
type: string
description:
type: string
confidence:
type: number
outputImage:
type: string
description: Cropped/processed document image (URL or base64)
outputImageBack:
type: string
description: Cropped/processed document back image (URL or base64)
faceMatch:
type: object
description: Face match result (if face image was provided)
properties:
confidence:
type: number
decision:
type: string
error:
$ref: '#/components/schemas/ErrorObject'
QuickScanResponse:
type: object
properties:
data:
type: object
description: Extracted document OCR data fields
additionalProperties: true
reference:
type: object
description: Cache references for uploaded images (if saveFile=true)
properties:
document:
type: string
documentBack:
type: string
error:
$ref: '#/components/schemas/ErrorObject'
ErrorObject:
type: object
properties:
code:
type: integer
description: Error code
message:
type: string
description: Human-readable error message
ErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorObject'
ScanRequest:
type: object
required:
- document
- profile
properties:
document:
type: string
description: Front of document image. Accepts a file path, base64-encoded image content, URL, or cache reference (ref:...).
documentBack:
type: string
description: Back of document image (file path, base64, URL, or cache reference)
face:
type: string
description: Selfie face photo (file path, base64, URL, or cache reference)
faceVideo:
type: string
description: Selfie face video (file path, base64, or URL). Used if face is empty.
profile:
type: string
description: KYC Profile ID or preset profile name (security_none, security_low, security_medium, security_high)
example: security_medium
profileOverride:
type: object
description: Per-request overrides applied on top of the specified profile
additionalProperties: true
verifyName:
type: string
description: Full name to verify against the document
verifyDob:
type: string
description: Date of birth to verify (YYYY/MM/DD)
pattern: ^\d{4}/\d{2}/\d{2}$
verifyAge:
type: string
description: Age range to verify (e.g. "18-40")
pattern: ^\d+-\d+$
verifyAddress:
type: string
description: Address to verify against the document
verifyPostcode:
type: string
description: Postcode to verify against the document
verifyDocumentNumber:
type: string
description: Document or ID number to verify
restrictCountry:
type: string
description: Comma-separated ISO ALPHA-2 country codes. Only accept documents from these countries (e.g. "US,CA,UK")
restrictState:
type: string
description: Comma-separated state names or abbreviations. Only accept documents from these states (e.g. "CA,TX")
restrictType:
type: string
description: 'Accepted document types: P=Passport, D=Driver''s License, I=Identity Card (e.g. "DIP" for all three)'
contractGenerate:
type: string
description: Up to 5 contract template IDs (comma-separated) for auto-generation
contractFormat:
type: string
description: Contract output format
enum:
- PDF
- DOCX
- HTML
default: PDF
contractPrefill:
type: object
description: Key-value pairs to prefill contract template dynamic fields
additionalProperties: true
ip:
type: string
description: User IP address for country cross-check
customData:
type: string
description: Arbitrary string to store alongside the transaction
client:
type: string
description: Client library identifier (set automatically by SDKs)
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: X-Api-Key
description: API key obtained from portal2.idanalyzer.com