API Documentation

Integrate bank statement parsing directly into your product. Simple REST API, JSON output, thousands of banks supported.

Quick Start

The API accepts PDF uploads and returns structured transaction data as JSON. No special libraries needed — any HTTP client works.

Base URL

https://bankstatementconverter.io

Authentication

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

To get an API key, register a free account and generate a key from your dashboard. Contact us for higher rate limits or custom plans.

Endpoints

Convert a PDF

POST /api/upload

Upload a bank statement PDF and receive structured transaction data.

Request

Send as multipart/form-data:

FieldTypeRequiredDescription
pdffileYesPDF file to convert (max 20 MB)
passwordstringNoPassword for encrypted PDFs

Example (cURL)

curl -X POST https://bankstatementconverter.io/api/upload \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "pdf=@statement.pdf"

Example (Python)

import requests with open("statement.pdf", "rb") as f: response = requests.post( "https://bankstatementconverter.io/api/upload", headers={"Authorization": "Bearer YOUR_API_KEY"}, files={"pdf": f} ) data = response.json() print(f"Extracted {data['row_count']} transactions")

Response

{ "run_id": "a1b2c3d4e5f6", "filename": "statement_jan_2024.pdf", "row_count": 47, "pdf_kind": "digital", "confidence": 98, "runtime_seconds": 0.42, "metadata": { "bank_name": "HDFC Bank", "currency": "INR", "account_number": "XXXX1234", "statement_period": "Jan 2024" }, "balance_checks": { "checked_pairs": 46, "pair_passes": 46 }, "rows": [ { "transaction_date": "2024-01-03", "description": "UPI-AMAZON-9876543210", "direction": "debit", "amount": 1299.00, "balance": 48701.00 }, { "transaction_date": "2024-01-05", "description": "SALARY CREDIT", "direction": "credit", "amount": 75000.00, "balance": 123701.00 } ], "warnings": [] }

Get a Previous Result

GET /api/result/{run_id}

Retrieve a previously converted statement by its run_id. Results are available for 24 hours.

curl https://bankstatementconverter.io/api/result/a1b2c3d4e5f6 \ -H "Authorization: Bearer YOUR_API_KEY"

Download Output Files

GET /download/{run_id}/{format}

Download a converted file directly. Supported formats:

FormatURLContent-Type
Excel/download/{run_id}/xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
CSV/download/{run_id}/csvtext/csv
JSON/download/{run_id}/jsonapplication/json

Error Codes

HTTP StatusCodeDescription
400INVALID_FILENot a valid PDF, or file is corrupt
401UNAUTHORIZEDMissing or invalid API key
422PASSWORD_REQUIREDPDF is encrypted; provide password field
429RATE_LIMITRate limit exceeded — back off and retry
500PARSE_FAILEDCould not extract transactions from this PDF

Rate Limits

PlanRequests / dayMax file size
Free (anonymous)10 pages10 MB
Registered (free)Unlimited20 MB
Custom API planBy agreement50 MB

For higher limits, contact us.

SDKs & Integrations

Official SDKs are planned for Python, Node.js and PHP. Until then, use any HTTP client. If you've built an integration you'd like listed here, let us know.

Ready to integrate?

Create a free account to get your API key, or contact us for custom volume plans.

Get API Key Free Contact Us