Developer REST API

Integrate our local coordinate transaction extraction parser directly into your accounting systems, ERPs, and tax workflows.

Authentication

Authenticate your endpoints using standard HTTP Bearer tokens. Pass the secret credential inside the Authorization header on all API transactions.

Authorization: Bearer sk_live_your_secret_api_token_here

Parse Statement PDF

POST /v1/parse

Upload a binary bank statement PDF to extract transaction rows, metadata balances, and fraud signals in structured JSON arrays. Supports password-protected sheets.

Request Parameters (Multipart Form)

Parameter Type Description
file file (binary) REQUIRED Maximum size 50MB.
password string Optional. Decryption credentials if PDF is locked.
strict_dates boolean Validate date continuity. Default: true.

Get Supported Banks

GET /v1/supported-banks

Returns an array of predefined bank layouts and OCR parsers configured in the system. Use this to pre-validate template coordinates or show compatible lists.

Interactive API Keys

Generate a simulated secret keys block to test in code containers. Keys generated here are mock variables to run local simulations.

Click generate below to initialize credential
request.sh
# Parse PDF statement via shell
curl -X POST https://api.statementtoexcel.co/v1/parse \
  -H "Authorization: Bearer sk_live_your_secret_api_token_here" \
  -F "file=@/path/to/statement.pdf"
// Using axios & form-data packages
const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');

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

axios.post('https://api.statementtoexcel.co/v1/parse', form, {
  headers: {
    ...form.getHeaders(),
    'Authorization': 'Bearer sk_live_your_secret_api_token_here'
  }
}).then(res => console.log(res.data))
  .catch(err => console.error(err));
# Using standard requests library
import requests

url = "https://api.statementtoexcel.co/v1/parse"
headers = {"Authorization": "Bearer sk_live_your_secret_api_token_here"}
files = {"file": open("/path/to/statement.pdf", "rb")}

response = requests.post(url, headers=headers, files=files)
print(response.json())
// Native Go request block
package main

import (
	"bytes"
	"fmt"
	"io"
	"mime/multipart"
	"net/http"
	"os"
)

func main() {
	file, _ := os.Open("statement.pdf")
	defer file.Close()

	body := &bytes.Buffer{}
	writer := multipart.NewWriter(body)
	part, _ := writer.CreateFormFile("file", "statement.pdf")
	io.Copy(part, file)
	writer.Close()

	req, _ := http.NewRequest("POST", "https://api.statementtoexcel.co/v1/parse", body)
	req.Header.Set("Authorization", "Bearer sk_live_your_secret_api_token_here")
	req.Header.Set("Content-Type", writer.FormDataContentType())

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	
	respBody, _ := io.ReadAll(resp.Body)
	fmt.Println(string(respBody))
}
console_playground
// Click "Run Request" above to simulate an endpoint transmission.