CheckfmtGet a free key

API documentation

One base URL, four REST endpoints, and an MCP server. Authenticate with ?key= or an Authorization: Bearer header. Get a free key →

IBAN

Checksum (mod-97) + per-country length. Pure compute.

GET /api/v1/iban?iban=DE89370400440532013000&key=YOUR_KEY

{ "valid": true, "countryCode": "DE", "country": "Germany", "expectedLength": 22, "checksumValid": true }

BIC / SWIFT

ISO 9362 format + component breakout.

GET /api/v1/bic?bic=DEUTDEFF500&key=YOUR_KEY

{ "valid": true, "bankCode": "DEUT", "countryCode": "DE", "locationCode": "FF", "branchCode": "500" }

EU VAT (VIES)

Live validation via the official EU VIES service. Returns 502 if VIES is down (retry).

GET /api/v1/vat?vat=DE811569869&key=YOUR_KEY

{ "vatNumber": "DE811569869", "valid": true, "name": "…", "source": "EU VIES" }

VIN (NHTSA)

Decode + validate a 17-char VIN via NHTSA vPIC.

GET /api/v1/vin?vin=1HGCM82633A004352&key=YOUR_KEY

{ "vin": "1HGCM82633A004352", "valid": true, "make": "HONDA", "model": "Accord", "modelYear": "2003" }

MCP server (for AI agents)

Streamable-HTTP MCP endpoint exposing validate_iban, validate_bic, validate_vat, and decode_vin. Pass your key via the Authorization header, ?key=, or an apiKey tool argument.

MCP endpoint:  https://www.checkfmt.com/mcp   (POST, JSON-RPC 2.0)

{ "mcpServers": { "checkfmt": { "url": "https://www.checkfmt.com/mcp?key=YOUR_KEY" } } }

Errors

401 invalid/missing key · 429 monthly limit reached · 400 missing parameter · 422 malformed input · 502 upstream relay (VIES/NHTSA) unavailable.