New The MCP server is live: all 44 APIs in Claude, Cursor or any MCP client. Connect your agent

AI-powered financial document processing

Bank Statement Parser API

The Bank Statement Parser API uses advanced OCR and machine learning to automatically extract structured financial data from bank statements. Parse transactions, account information, balances, and generate financial insights from PDF documents and images.

Perfect for fintech applications, accounting software, lending platforms, and financial analytics tools requiring automated bank statement processing with bank-grade security and enterprise reliability.

Free tier included, no credit card required. One key works across every API.

At a glance

Bank Statement Parser API

25 credits / call
Free calls / month
40
Accuracy Rate
98%+
Processing Time
<15s
Banks Supported
500+
Get your free API key

40 free calls on the free plan

Key features

  • Extract all transaction details and metadata
  • Parse account and bank information
  • Calculate balances and financial summaries
  • Automatic transaction categorization
  • Support for PDF and image statement formats
  • Multi-bank and multi-currency processing
  • Secure processing with data encryption
  • Batch processing for multiple statements

Built for

  • Loan application and underwriting
  • Personal finance management apps
  • Automated bookkeeping and accounting
  • Financial planning and budgeting tools
  • Expense tracking and reporting
  • Credit assessment and risk analysis
  • Banking and fintech integrations
  • Compliance and audit documentation

MCP · for your agent

Hand the Bank Statement Parser API to your agent

Connect Claude, Cursor or any MCP client once, then ask in plain words. Your agent finds this API, reads its docs and makes the call: 25 credits per call, the same as REST, from your team's balance.

Match payments to paid invoices

“Parse our April business statement and match each outgoing payment to the vendor invoices in our shared folder.”

list_apis · get_api_docsfree

api_request POST /bank-statement-parser/v1/text 25 cr

+ Invoice Parser API25 cr

Every transaction with date, amount and counterparty, matched to invoices, orphans flagged.

Break down card spend by category

“Go through our last three company card statements and total the spending by category: software, travel and meals.”

list_apis · get_api_docsfree

api_request POST /bank-statement-parser/v1/text 25 cr

All transactions categorized, with monthly totals per category and the biggest merchants.

Pre-screen a small-business loan

“Contoso Bakery shared their March statement for a loan review. Summarize balances, deposits and any overdraft fees.”

list_apis · get_api_docsfree

api_request POST /bank-statement-parser/v1/url 25 cr

Opening and closing balances, total credits and debits, fees charged and transaction count.

$ claude mcp add --transport http apicodex https://mcp.apicodex.io

Illustrative asks; the calls and prices are real. Claude, Cursor, VS Code and Windsurf setup: mcp.apicodex.io

Try it

Build the request for your data

Edit the parameters below and see the exact request and curl command you'd send. No key required to preview.

POST /bank-statement-parser/v1/text
Open in Playground
Request · HTTP
POST /bank-statement-parser/v1/text HTTP/1.1
Host: api.apicodex.io
Content-Type: application/json
X-Api-Key: YOUR_API_KEY

{
  "text": "First National Bank. Statement period 2025-04-01 to 2025-04-30. Opening balance 2,500.00. 2025-04-02 Direct Deposit - Salary +3,500.00. Closing balance 2,847.50."
}
Response · JSON 200 OK
{
  "success": true,
  "parsed_at": "2025-05-13T07:40:48.000Z",
  "data": {
    "bank_info": {
      "name": "First National Bank",
      "address": "123 Banking Street, Financial District, NY 10001",
      "phone": "(555) 123-BANK",
      "routing_number": "123456789",
      "swift_code": "FNBKUS33"
    },
    "account_info": {
      "account_holder": "John Smith",
      "account_number": "**** 1234",
      "account_type": "Checking",
      "currency": "USD"
    },
    "statement_period": {
      "start_date": "2025-04-01",
      "end_date": "2025-04-30",
      "statement_date": "2025-05-01"
    },
    "balance_info": {
      "opening_balance": 2500.00,
      "closing_balance": 2847.50,
      "available_balance": 2847.50,
      "pending_balance": 0.00
    },
    "transactions": [
      {
        "date": "2025-04-02",
        "description": "Direct Deposit - Salary",
        "amount": 3500.00,
        "balance": 6000.00,
        "reference": "DD20250402001",
        "category": "Deposit",
        "merchant": "ABC Corporation",
        "location": null
      }
    ],
    "summary": {
      "total_credits": 3500.00,
      "total_debits": -652.50,
      "transaction_count": 25,
      "fees_charged": 5.00,
      "interest_earned": 0.00
    }
  }
}

Documentation

Bank Statement Parser API Documentation

The Bank Statement Parser API is designed for fintech companies, financial institutions, and developers who need to extract structured data from bank statements. The API supports various statement formats and uses advanced AI to ensure high accuracy while maintaining strict security standards.

Base URL

url
https://api.apicodex.io/bank-statement-parser

Authentication

Authenticate every request with your API key: send it in an X-Api-Key header, or pass it as an ?apikey= query parameter.

headers
{
"X-Api-Key": "YOUR_API_KEY"
}

Request and response

Illustrative values. Confirm current endpoint behavior, quotas, and data freshness in the API documentation before production use.

request · http
POST /bank-statement-parser/v1/text HTTP/1.1
Host: api.apicodex.io
Content-Type: application/json
X-Api-Key: YOUR_API_KEY

{
  "text": "First National Bank. Statement period 2025-04-01 to 2025-04-30. Opening balance 2,500.00. 2025-04-02 Direct Deposit - Salary +3,500.00. Closing balance 2,847.50."
}
response · json
{
  "success": true,
  "parsed_at": "2025-05-13T07:40:48.000Z",
  "data": {
    "bank_info": {
      "name": "First National Bank",
      "address": "123 Banking Street, Financial District, NY 10001",
      "phone": "(555) 123-BANK",
      "routing_number": "123456789",
      "swift_code": "FNBKUS33"
    },
    "account_info": {
      "account_holder": "John Smith",
      "account_number": "**** 1234",
      "account_type": "Checking",
      "currency": "USD"
    },
    "statement_period": {
      "start_date": "2025-04-01",
      "end_date": "2025-04-30",
      "statement_date": "2025-05-01"
    },
    "balance_info": {
      "opening_balance": 2500.00,
      "closing_balance": 2847.50,
      "available_balance": 2847.50,
      "pending_balance": 0.00
    },
    "transactions": [
      {
        "date": "2025-04-02",
        "description": "Direct Deposit - Salary",
        "amount": 3500.00,
        "balance": 6000.00,
        "reference": "DD20250402001",
        "category": "Deposit",
        "merchant": "ABC Corporation",
        "location": null
      }
    ],
    "summary": {
      "total_credits": 3500.00,
      "total_debits": -652.50,
      "transaction_count": 25,
      "fees_charged": 5.00,
      "interest_earned": 0.00
    }
  }
}

Code examples

JavaScript/Node.js
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const form = new FormData();
form.append('file', fs.createReadStream('/path/to/statement.pdf'));

const options = {
  method: 'POST',
  url: 'https://api.apicodex.io/bank-statement-parser/v1/upload',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    ...form.getHeaders()
  },
  data: form
};

try {
  const response = await axios.request(options);
  console.log(response.data);
} catch (error) {
  console.error(error);
}

Endpoints

POST /v1/upload

Upload a PDF, JPEG or PNG file (multipart/form-data, field name: file).

curl -X POST "https://api.apicodex.io/bank-statement-parser/v1/upload" -H "X-Api-Key: YOUR_API_KEY" -F "[email protected]"

POST /v1/url

Parse a document fetched from a public URL. JSON body: {"url": "https://..."}.

POST /v1/text

Parse plain text. JSON body {"text": "..."}, or a text/plain body.

Pricing

Bank Statement Parser API Pricing

This API costs 25 credits per request. Credits are shared across every API on your plan.

Cost estimator

requests per month → cheapest plan that covers it

Estimate your monthly cost

Drag the slider to match your expected request volume. We'll recommend the cheapest plan that covers it.

10,000

Recommended plan

Starter

$29.99 /month

Credits used
Credits included
Cost per 1K requests
Choose Starter

Free

Free
1,000 credits · ~40 requests/mo · 2 rps
  • All APIs included
  • No credit card required
  • Full documentation and examples
  • MCP server for your AI agents
  • Up to 5 active API keys
Start for free

Starter

Popular
$29.99 /month
50,000 credits · ~2,000 requests/mo · 10 rps
  • All APIs included
  • Email support
  • Usage dashboard and analytics
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Starter

Pro

$99.99 /month
250,000 credits · ~10,000 requests/mo · 25 rps
  • All APIs included
  • Priority support
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Pro

Need a different plan?

Tell us about your API, volume, or support requirements.

Contact us

FAQ

Frequently asked questions

Ready to integrate Bank Statement Parser?