bankstract

Self-host

Two paths. MIT engine for on-prem parsing. Full cloud stack for the complete API.

Two paths

MIT engineFull cloud stack
What you getParser library onlyAPI, dashboard, demo, auth, billing
DeploymentYour code, your infraDocker Compose anywhere
Pays bankstractNothing (or sponsorship)Nothing
Compliance fitFull on-prem, no outbound PDF trafficSelf-controlled infra

MIT engine (on-prem parsing)

For teams whose compliance policy prohibits sending PDFs to a third party.

pip install bankstract
import io
import bankstract

with open("statement.pdf", "rb") as f:
    buf = io.BytesIO(f.read())

result = bankstract.parse(buf)

The engine runs entirely in process. No network calls, no disk writes. Source and supported banks: github.com/logickoder/bankstract.

Need a bank added? The engine is MIT-licensed and accepts contributions. If you need a specific bank prioritised, contact us about sponsoring the implementation. Sponsored additions ship to the public MIT engine.


Full cloud stack (self-hosted API)

The same AGPL-3.0 code that powers the hosted service. Brings up the worker, the consumer demo, and a Caddy reverse proxy.

git clone https://github.com/logickoder/bankstract-cloud
cd bankstract-cloud/infra
cp .env.example .env
# fill in TURNSTILE_SECRET_KEY and DEMO_API_KEY at minimum
docker compose up --build

The B2B API runs on the same host at /v1. See infra/README.md for domain, TLS, and backup notes.

Self-hosting means you run your own keys, your own audit log, and pay nothing per parse. The privacy posture is identical to the hosted service: PDFs are parsed in memory, only metadata is stored.

AGPL note: API consumers call you over HTTP and do not inherit AGPL. If you fork and host this code as a SaaS, you must open-source your modifications.

On this page