---
Source: https://docs.microblink.com/extraction/api
Title: Self-hosted extraction API
---

# Self-hosted extraction API

<!-- interactive component omitted -->


The self-hosted extraction API is a REST API that runs [BlinkID](/blinkid) and [BlinkCard](/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

| Capability | Endpoint |
|---|---|
| ID documents (both sides) | `POST /blinkid-multi-side` |
| ID documents (front only) | `POST /blinkid-single-side` |
| ID barcodes | `POST /id-barcode` |
| Payment cards | `POST /blinkcard` |
| General barcodes | `POST /barcode` |

BlinkID covers passports, national IDs, driver's licenses, and residence permits across [hundreds of document types](https://microblink.com/resources/full-list-of-supported-identity-documents/).
BlinkCard handles credit and debit cards.

## Example

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

```bash
curl --json '{"imageFront": {"imageUrl": "https://example.com/id-front.jpg"}, "imageBack": {"imageUrl": "https://example.com/id-back.jpg"}}' http://localhost:8080/blinkid-multi-side
```

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

```json
{
  "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](/extraction/api/ref).

## 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


<!-- interactive component omitted -->


Last updated on Aug 6, 2026
