OpenAPI Specification
openapi: 3.0.3
info:
title: ID Analyzer Scanner Account Profile 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: Profile
description: KYC profile management
paths:
/profile:
get:
tags:
- Profile
operationId: listProfiles
summary: List KYC profiles
description: Retrieve a paginated list of KYC profiles.
parameters:
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
description: List of KYC profiles
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Profile
operationId: createProfile
summary: Create KYC profile
description: Create a new KYC profile with the specified configuration.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileRequest'
responses:
'200':
description: Created KYC profile
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/profile/{profileId}:
get:
tags:
- Profile
operationId: getProfile
summary: Get KYC profile
description: Retrieve a single KYC profile by ID.
parameters:
- name: profileId
in: path
required: true
description: KYC Profile ID
schema:
type: string
responses:
'200':
description: KYC profile details
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Profile
operationId: updateProfile
summary: Update KYC profile
description: Update an existing KYC profile.
parameters:
- name: profileId
in: path
required: true
description: KYC Profile ID
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileRequest'
responses:
'200':
description: Updated KYC profile
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Profile
operationId: deleteProfile
summary: Delete KYC profile
description: Delete a KYC profile by ID.
parameters:
- name: profileId
in: path
required: true
description: KYC Profile ID
schema:
type: string
responses:
'200':
description: Profile deleted
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'404':
$ref: '#/components/responses/NotFound'
/export/profile/{profileId}:
get:
tags:
- Profile
operationId: exportProfile
summary: Export KYC profile
description: Export a KYC profile configuration by ID.
parameters:
- name: profileId
in: path
required: true
description: KYC Profile ID
schema:
type: string
responses:
'200':
description: Exported KYC profile configuration
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileResponse'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
ProfileResponse:
type: object
properties:
profileId:
type: string
description: KYC Profile ID
name:
type: string
description: Profile name
config:
type: object
description: Profile configuration
additionalProperties: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
SuccessResponse:
type: object
properties:
success:
type: boolean
description: Whether the operation was successful
example: true
ProfileRequest:
type: object
properties:
name:
type: string
description: Profile name
canvasSize:
type: integer
description: Maximum canvas dimension in pixels (0=disable)
orientationCorrection:
type: boolean
description: Enable automatic image orientation correction
objectDetection:
type: boolean
description: Enable detection of signature, document, and face locations
AAMVABarcodeParsing:
type: boolean
description: Enable AAMVA barcode parsing for US/CA ID/DL
saveResult:
type: boolean
description: Save scan transaction results to cloud
saveImage:
type: boolean
description: Save output images to cloud
outputImage:
type: boolean
description: Return output image in API response
outputType:
type: string
description: Output image format
enum:
- url
- base64
default: url
outputSize:
type: integer
description: Maximum output image dimension in pixels
crop:
type: boolean
description: Automatically crop document from image
advancedCrop:
type: boolean
description: Enable perspective-corrected auto cropping
inferFullName:
type: boolean
description: Infer full name from first, middle, and last name fields
splitFirstName:
type: boolean
description: Split multi-word first name into first and middle name
transactionAuditReport:
type: boolean
description: Generate a PDF audit report for every transaction
timezone:
type: string
description: Timezone for audit reports (TZ database name)
default: UTC
obscure:
type: array
description: Data field keys to redact before storage
items:
type: string
webhook:
type: string
description: Webhook URL for verification result callbacks
format: uri
thresholds:
type: object
description: Validation threshold configuration
additionalProperties:
type: number
decisionTrigger:
type: object
description: Score thresholds that trigger review or reject decisions
properties:
review:
type: number
reject:
type: number
decisions:
type: object
description: Per-warning configuration for decision scoring
additionalProperties:
type: object
properties:
enabled:
type: boolean
review:
type: number
reject:
type: number
weight:
type: number
acceptedDocuments:
type: object
description: Document restriction filters
properties:
documentCountry:
type: string
description: Comma-separated ISO ALPHA-2 country codes
documentState:
type: string
description: Comma-separated state names or abbreviations
documentType:
type: string
description: Accepted document type codes (P/D/I)
ProfileListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileResponse'
total:
type: integer
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'
responses:
BadRequest:
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized - invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
order:
name: order
in: query
description: Sort results by newest (-1) or oldest (1)
schema:
type: integer
enum:
- -1
- 1
default: -1
limit:
name: limit
in: query
description: Number of items to return per call (1-99)
schema:
type: integer
minimum: 1
maximum: 99
default: 10
offset:
name: offset
in: query
description: Start the list from this entry index
schema:
type: integer
minimum: 0
default: 0
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: X-Api-Key
description: API key obtained from portal2.idanalyzer.com