Skip to main content

Self-hosted extraction API

The self-hosted extraction API is a REST API that runs BlinkID and BlinkCard recognition on your own infrastructure. You send it images you've already captured — it returns structured data extracted from the document.

What it does

You POST one or two images of a document (front, back, or both) and the API responds with extracted fields: names, dates, document numbers, MRZ data, and more. There's no SDK to embed, no camera integration, and no data ever leaves your servers.

This makes it a good fit when you already have images from your own capture flow, or when you're processing documents in a backend pipeline without a user-facing camera session.

What's supported

CapabilityEndpoint
ID documents — both sidesPOST /blinkid-multi-side
ID documents — front onlyPOST /blinkid-single-side
ID barcodesPOST /id-barcode
Payment cardsPOST /blinkcard
General barcodesPOST /barcode

BlinkID covers passports, national IDs, driver's licenses, and residence permits across hundreds of document types. BlinkCard handles credit and debit cards.

Example

Send a front and back image (as a URL or base64):

curl -X POST http://localhost:8080/blinkid-multi-side \
-H 'Content-Type: application/json' \
-d '{
"imageFront": { "imageUrl": "https://example.com/id-front.jpg" },
"imageBack": { "imageUrl": "https://example.com/id-back.jpg" }
}'

You get back a JSON object with the extracted document data:

{
"data": {
"firstName": { "latin": "JANE" },
"lastName": { "latin": "DOE" },
"dateOfBirth": {
"day": 15, "month": 4, "year": 1990,
"originalString": { "latin": "15 APR 1990" }
},
"dateOfExpiry": {
"day": 14, "month": 4, "year": 2030,
"originalString": { "latin": "14 APR 2030" }
},
"documentNumber": { "latin": "AB123456" },
"nationality": { "latin": "USA" },
"sex": { "latin": "F" },
"processingStatus": "SUCCESS",
"documentClassInfo": {
"country": "COUNTRY_USA",
"region": "REGION_CALIFORNIA",
"type": "TYPE_DL"
}
}
}

The full response schema is in the API reference.

Why self-hosted

  • Data stays on your infrastructure — no images or extracted data are sent to Microblink servers
  • Works in air-gapped environments — runs fully offline once deployed
  • No capture dependency — process images from any source: mobile, web, scanners, or document uploads
  • Scales with your stack — deploy as a Docker container alongside your existing services

Read more