Routing Number Database API: Texas Banks as JSON

Routing Number Database API: Texas Banks as JSON

A routing number database API lists US ABA numbers by state, city, ZIP, or bank name — not a single validate call. On BankDataStack that is POST https://www.bankdatastack.com/api/v1/routing/database/state with header X-API-Key. Official docs sample: state=TX, limit=10, page=1.

Starter is $49.99/mo (1,000 calls, then $0.002) with a 7-day trial. This is the local 19,000+ bank database, not the external /routing/validate path. Docs: bankdatastack.com/docs.

Request: Texas, page 1

curl -X POST "https://www.bankdatastack.com/api/v1/routing/database/state" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"TX","limit":10,"page":1}'

Response: official state sample

{
  "status": "success",
  "message": "Found 10 routing number(s) for state: TX on page 1",
  "state": "TX",
  "data": [{
    "routingNumber": "113110984",
    "bank": "CITIZENS NATIONAL BANK",
    "city": "CROCKETT",
    "state": "TX",
    "zip": "75835",
    "phone": "(936) 544-9661",
    "active": true
  }],
  "pagination": {
    "current_page": 1,
    "per_page": 10,
    "total": 458,
    "total_pages": 46,
    "has_more": true
  }
}

Walk pagination.has_more. Sibling paths: /routing/database/bank, /city, /zip, /lookup.

$ch = curl_init('https://www.bankdatastack.com/api/v1/routing/database/state');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('BANKDATA_KEY'), 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode(['state' => 'TX', 'limit' => 10, 'page' => 1]),
]);
$json = json_decode(curl_exec($ch), true);
echo $json['data'][0]['routingNumber'] ?? '';

Go live

1. Register — 7-day trial.

2. Copy X-API-Key.

3. POST {"state":"TX"}.

4. Page until has_more is false.

List Texas routing numbers →

Ready to get started?

Get your API key and start validating bank data in minutes.

Get API Key