Integrate our extraction engine directly into your software. Automate bank statement parsing for your clients.
All API requests require a Bearer token. You can generate an API key in your dashboard.
Authorization: Bearer YOUR_API_KEY
429 Too Many Requests./api/v1/statements
Uploads a statement and queues it for processing. Returns a statement ID immediately which you can poll for status.
| Parameter | Type | Description |
|---|---|---|
| file | File | Required. The PDF, JPG, or PNG to process (Max 10MB). |
curl -X POST https://api.bankstatementconverter.com/api/v1/statements \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/statement.pdf"
{
"success": true,
"data": {
"id": 142,
"status": "pending",
"filename": "statement.pdf",
"poll_url": "https://api.bankstatementconverter.com/api/v1/statements/142"
},
"credits_used": 3,
"credits_remaining": 997
}
/api/v1/statements/{id}
Check the processing status of a statement. Once status is "completed", the full transaction data is included.
{
"success": true,
"data": {
"id": 142,
"status": "completed",
"bank_name": "Chase Bank",
"account_number": "****1234",
"currency": "USD",
"statement_period": {
"start": "2026-01-01",
"end": "2026-01-31"
},
"opening_balance": 5000.00,
"closing_balance": 4250.75,
"processing_time_ms": 3200,
"transaction_count": 2,
"transactions": [
{
"date": "2026-01-02",
"description": "Amazon.com*ML5K",
"amount": 49.99,
"type": "debit",
"balance": 4950.01
},
{
"date": "2026-01-05",
"description": "Salary Deposit",
"amount": 3000.00,
"type": "credit",
"balance": 7950.01
}
]
}
}
/api/v1/statements/extract
Uploads and processes the statement in a single blocking request. Ideal for small files. Warning: Connection will remain open until processing finishes. May timeout for files larger than 10 pages.
Takes the same file parameter as the async upload endpoint and returns the full completed JSON response directly.
| HTTP Status | Code | Description |
|---|---|---|
| 401 Unauthorized | unauthorized | Missing or invalid API key. |
| 402 Payment Required | insufficient_credits | Not enough credits on the account to process the file. |
| 404 Not Found | not_found | The statement ID does not exist or doesn't belong to your account. |
| 422 Unprocessable | validation_error | Invalid file type or missing required parameters. |
| 429 Too Many Requests | rate_limit | Exceeded 60 requests per minute. |
Need help integrating? Contact our technical support.