🏦Bank Scorer

API Documentation

The BankScorer API gives programmatic access to CRA ratings for all every FDIC-insured US bank. Available on the Business plan. Get your API key from your Account page.

Authentication

Pass your API key in the Authorization header on every request.

curl https://bankscorer.com/api/v1/banks \
  -H "Authorization: Bearer bs_live_YOUR_KEY"

Endpoints

GET/api/v1/banks

Search and list banks with their current CRA rating.

Query parameters

ParamTypeDescription
qstringSearch by bank name (partial match)
statestringFilter by 2-letter state code (e.g. NY)
sizestringFilter by exam type: Large Bank, Small Bank, Intermediate Small Bank
pageintegerPage number (default: 1)
per_pageintegerResults per page (default: 25, max: 100)
curl "https://bankscorer.com/api/v1/banks?q=chase&state=NY&per_page=5" \
  -H "Authorization: Bearer bs_live_YOUR_KEY"
{
  "data": [
    {
      "id": "3fa85f64-...",
      "name": "JPMORGAN CHASE BANK, N.A.",
      "city": "COLUMBUS",
      "state": "OH",
      "regulator": "OCC",
      "current_rating": {
        "rating": "Outstanding",
        "exam_date": "2024-03-11",
        "exam_type": "Large Bank"
      }
    }
  ],
  "meta": { "total": 18986, "page": 1, "per_page": 5, "total_pages": 3798 }
}
GET/api/v1/banks/:id

Full details for a bank including complete rating history. Get the idfrom the list endpoint or a bank's URL on BankScorer.

curl "https://bankscorer.com/api/v1/banks/3fa85f64-..." \
  -H "Authorization: Bearer bs_live_YOUR_KEY"
{
  "data": {
    "id": "3fa85f64-...",
    "name": "JPMORGAN CHASE BANK, N.A.",
    "city": "COLUMBUS",
    "state": "OH",
    "regulator": "OCC",
    "charter_type": null,
    "ratings": [
      { "exam_date": "2024-03-11", "rating": "Outstanding", "exam_type": "Large Bank", "is_current": true },
      { "exam_date": "2020-03-02", "rating": "Outstanding", "exam_type": "Large Bank", "is_current": false }
    ]
  }
}

Webhooks

Configure a webhook endpoint in your Account settings to receive real-time notifications when new CRA examinations are published.

Event: rating.created

Fired whenever a new examination record is added to the database.

Payload

{
  "event": "rating.created",
  "timestamp": "2026-06-18T12:00:00.000Z",
  "data": {
    "bank_id": "uuid",
    "bank_name": "First National Bank",
    "rating": "Satisfactory",
    "exam_date": "2026-01-15",
    "regulator": "OCC"
  }
}

Signature verification

Every request includes an X-BankScorer-Signature header. Verify it to confirm the payload came from BankScorer.

// Node.js example
const crypto = require("crypto");

function verifySignature(secret, rawBody, header) {
  const expected = "sha256=" + crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(header),
    Buffer.from(expected)
  );
}

Errors

StatusMeaning
401Missing or invalid API key
403Valid key but subscription is inactive
404Bank not found
500Server error

Ready to get started?

Get your API key from your account page — it's included with every Business plan.