{
  "base_url": "https://www.bankdatastack.com/api/v1",
  "mcp_endpoint": "POST https://mcp.bankdatastack.com/mcp",
  "tools": [
    {
      "name": "validate_routing_number",
      "method": "POST",
      "path": "/routing/validate",
      "description": "Validates a US bank routing number (ABA number): checks length, the ABA mod-10 checksum, and the assigned bank, then returns the bank's name, address, and ACH/wire eligibility.",
      "params": [
        {
          "name": "routing_number",
          "required": true,
          "description": "Exactly 9 digits, e.g. \"021000021\"."
        },
        {
          "name": "payment_type",
          "required": false,
          "description": "\"ach\" or \"wire\". Omit to get the first available payment rail."
        }
      ],
      "auth_required": true
    },
    {
      "name": "lookup_routing_number_db",
      "method": "POST",
      "path": "/routing/database/lookup",
      "description": "Looks up a US routing number in the local database (19,000+ US banks and credit unions) — richer than validate_routing_number (full address, phone, revision date). Pass refresh=true to force a fresh upstream lookup.",
      "params": [
        {
          "name": "routing_number",
          "required": true,
          "description": "Exactly 9 digits, e.g. \"021000021\"."
        },
        {
          "name": "refresh",
          "required": false,
          "description": "Boolean. Force a fresh upstream lookup instead of using the cached record. Defaults to false."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_routing_numbers",
      "method": "POST",
      "path": "/routing/database/search",
      "description": "Advanced multi-filter search across the local routing number database — bank, city, state, and/or zip. At least one filter is required. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "bank",
          "required": false,
          "description": "Bank name, partial match, at least 2 characters."
        },
        {
          "name": "city",
          "required": false,
          "description": "City name, at least 2 characters."
        },
        {
          "name": "state",
          "required": false,
          "description": "2-letter US state code or full name, at least 2 characters."
        },
        {
          "name": "zip",
          "required": false,
          "description": "ZIP code, at least 5 characters."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_banks_by_name",
      "method": "POST",
      "path": "/routing/database/bank",
      "description": "Search the local routing number database by bank name (partial match). Paginated, max 10 results/page.",
      "params": [
        {
          "name": "bank",
          "required": true,
          "description": "Bank name, partial match, at least 2 characters, e.g. \"Chase\"."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_banks_by_state",
      "method": "POST",
      "path": "/routing/database/state",
      "description": "List banks and credit unions registered in a US state, from the local routing number database. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "state",
          "required": true,
          "description": "2-letter US state code or full state name, e.g. \"NY\"."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_banks_by_city",
      "method": "POST",
      "path": "/routing/database/city",
      "description": "List banks and credit unions registered in a city, from the local routing number database. Optionally narrow by state. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "city",
          "required": true,
          "description": "City name, at least 2 characters."
        },
        {
          "name": "state",
          "required": false,
          "description": "Optional 2-letter US state code to disambiguate same-named cities."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_banks_by_zip",
      "method": "POST",
      "path": "/routing/database/zip",
      "description": "List banks and credit unions registered in a ZIP code, from the local routing number database. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "zip",
          "required": true,
          "description": "ZIP code, at least 5 characters."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "lookup_bin",
      "method": "POST",
      "path": "/bin/lookup",
      "description": "Looks up a card Bank Identification Number (the first 6-8 digits of a card number) and returns the issuing bank, card brand (Visa/Mastercard/Amex/...), card type and level, and country.",
      "params": [
        {
          "name": "bin",
          "required": true,
          "description": "6-8 digit Bank Identification Number, e.g. \"411111\"."
        }
      ],
      "auth_required": true
    },
    {
      "name": "validate_iban",
      "method": "POST",
      "path": "/iban/validate",
      "description": "Validates an International Bank Account Number: checks the country participates in IBAN, the length matches that country's format, and the MOD-97 checksum, then returns the country code, check digits, and BBAN.",
      "params": [
        {
          "name": "iban",
          "required": true,
          "description": "15-34 characters, e.g. \"DE89370400440532013000\". Spaces are stripped automatically."
        }
      ],
      "auth_required": true
    },
    {
      "name": "lookup_swift",
      "method": "POST",
      "path": "/swift/lookup",
      "description": "Looks up a SWIFT/BIC code in the local registry and returns the associated bank, branch, city, address, and country.",
      "params": [
        {
          "name": "swift",
          "required": true,
          "description": "8-11 alphanumeric characters, e.g. \"DEUTDEFF\" or \"CHASUS33XXX\"."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_swift_codes",
      "method": "POST",
      "path": "/swift/search",
      "description": "Advanced multi-filter search across the SWIFT/BIC registry — bank, city, country, and/or 2-letter country code. At least one filter is required. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "bank",
          "required": false,
          "description": "Bank name, partial match, at least 2 characters."
        },
        {
          "name": "city",
          "required": false,
          "description": "City name, at least 2 characters."
        },
        {
          "name": "country",
          "required": false,
          "description": "Country name, at least 2 characters."
        },
        {
          "name": "country_code",
          "required": false,
          "description": "2-letter ISO country code, e.g. \"US\" or \"GB\"."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_swift_by_bank",
      "method": "POST",
      "path": "/swift/bank",
      "description": "List all SWIFT/BIC codes for a bank name (partial match) — a bank can have multiple codes across branches. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "bank",
          "required": true,
          "description": "Bank name, partial match, at least 2 characters, e.g. \"Deutsche Bank\"."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_swift_by_country",
      "method": "POST",
      "path": "/swift/country",
      "description": "List all SWIFT/BIC codes registered in a country. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "country_code",
          "required": true,
          "description": "2-letter ISO country code, e.g. \"DE\" or \"US\"."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "search_swift_by_city",
      "method": "POST",
      "path": "/swift/city",
      "description": "List all SWIFT/BIC codes registered in a city. Optionally narrow by country code. Paginated, max 10 results/page.",
      "params": [
        {
          "name": "city",
          "required": true,
          "description": "City name, at least 2 characters."
        },
        {
          "name": "country_code",
          "required": false,
          "description": "Optional 2-letter ISO country code to disambiguate same-named cities."
        },
        {
          "name": "limit",
          "required": false,
          "description": "Results per page, 1-10. Defaults to 10."
        },
        {
          "name": "page",
          "required": false,
          "description": "Page number, starting at 1. Defaults to 1."
        }
      ],
      "auth_required": true
    },
    {
      "name": "validate_bic",
      "method": "POST",
      "path": "/bic/validate",
      "description": "Validates a BIC (same format as SWIFT) against the local registry and returns a detailed breakdown (bank code, country code, location code, branch code) alongside the bank, branch, and address.",
      "params": [
        {
          "name": "bic",
          "required": true,
          "description": "8-11 alphanumeric characters, e.g. \"CHASUS33\" or \"DEUTDEFF\"."
        }
      ],
      "auth_required": true
    },
    {
      "name": "register",
      "method": "POST",
      "path": "/oauth/register + /oauth/token",
      "description": "Issue a free, low-quota sandbox API credential with no human signup.",
      "params": [
        {
          "name": "client_name",
          "required": false,
          "description": "Label for this credential."
        },
        {
          "name": "contact_email",
          "required": false,
          "description": "Abuse contact only, not verified."
        }
      ],
      "auth_required": false
    }
  ]
}