{"openapi":"3.1.0","info":{"title":"x402 Format Checker","version":"1.2.0","description":"Format and checksum validation for IBAN, EU VAT, Polish NIP/REGON/PESEL and email, pay-per-call via x402. Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. No account or API key. Also available as a remote MCP server at https://x402-test.crewofthecaptain.com/mcp and an A2A agent at https://x402-test.crewofthecaptain.com/a2a. We never store the values you check; we count requests and public payment data.","x-guidance":"POST /api/validate/{type} with JSON {\"value\": \"...\"}. An unpaid request returns 402 with a PAYMENT-REQUIRED header; pay with any x402 v2 client and retry with PAYMENT-SIGNATURE. Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base.","contact":{"url":"https://crewofthecaptain.com"}},"servers":[{"url":"https://x402-test.crewofthecaptain.com"}],"paths":{"/api/types":{"get":{"summary":"List available checks, price, network and payTo (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/api/validate/iban":{"post":{"operationId":"validate_iban","summary":"IBAN: country length + ISO 13616 mod-97 checksum ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"PL61109010140000071219812874"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}},"/api/validate/eu-vat":{"post":{"operationId":"validate_eu_vat","summary":"EU VAT number: per-country format (offline, no VIES); PL also NIP checksum ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"PL5260250274"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}},"/api/validate/pl-nip":{"post":{"operationId":"validate_pl_nip","summary":"Polish NIP tax id: 10 digits + weighted mod-11 checksum ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"5260250274"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}},"/api/validate/pl-regon":{"post":{"operationId":"validate_pl_regon","summary":"Polish REGON: 9 or 14 digits + mod-11 checksum ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"123456785"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}},"/api/validate/pl-pesel":{"post":{"operationId":"validate_pl_pesel","summary":"Polish PESEL: checksum + encoded birth date and sex ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"44051401359"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}},"/api/validate/email":{"post":{"operationId":"validate_email","summary":"Email address syntax (dot-atom local part, LDH domain; no DNS) ($0.001 per call)","description":"Only $0.001 (0.1 cent) per check, paid via x402 in USDC on Base. Without a valid PAYMENT-SIGNATURE header the server answers 402 with a PAYMENT-REQUIRED header (x402 v2, scheme exact).","tags":["validation"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"}}]},"x-x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","price":"$0.001","payTo":"0xACeaEeBF0Dc8DC7762F2FdE4885f219888e9D045"},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["value"],"properties":{"value":{"type":"string","maxLength":512,"example":"captain@crewofthecaptain.com"}}}}}},"responses":{"200":{"description":"Check result (raw input never echoed; personal identifiers masked)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Result"}}}},"400":{"description":"Missing/too-long value or query string present (not charged)"},"402":{"description":"Payment required (x402 v2); see PAYMENT-REQUIRED header"},"413":{"description":"Body too large (not charged)"},"415":{"description":"Content-Type must be application/json (not charged)"}}}}},"components":{"schemas":{"Result":{"type":"object","properties":{"type":{"type":"string"},"valid":{"type":"boolean"},"normalized":{"type":["string","null"]},"reason":{"type":"string"},"details":{"type":"object"}}}}}}