{"id":"base64url-validate","version":"1.0.0","description":"Check canonical base64url syntax and return validity plus the first invalid character when present.","supported_operations":["validate URL-safe base64","find the first invalid base64url character","check base64url padding","is this canonical base64url","validate an unpadded URL token","check RFC 4648 URL alphabet"],"unsupported_operations":["decode the bytes","accept standard base64 plus or slash","verify signatures or authenticity"],"semantics":["The padding policy is required: required, forbidden, or optional.","The first left-to-right character outside the base64url alphabet or misplaced after padding is reported with its zero-based UTF-16 index.","Canonical unused pad bits must be zero.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_input_bytes":16384,"max_output_bytes":512},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["encoded","padding"],"properties":{"encoded":{"type":"string","maxLength":16384},"padding":{"type":"string","enum":["required","forbidden","optional"]}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","standard_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":"string"},"invalid_index":{"type":"integer","minimum":0,"maximum":16384},"invalid_character":{"type":"string","minLength":1,"maxLength":1},"standard_version":{"type":"string","const":"RFC 4648 §5 (2006); RFC 7515 Appendix C (2015)"}}},"examples":[{"input":{"encoded":"SGVsbG8_","padding":"forbidden"},"output":{"valid":true,"standard_version":"RFC 4648 §5 (2006); RFC 7515 Appendix C (2015)"}},{"input":{"encoded":"SGVs+bG8","padding":"optional"},"output":{"valid":false,"reason":"invalid_character","invalid_index":4,"invalid_character":"+","standard_version":"RFC 4648 §5 (2006); RFC 7515 Appendix C (2015)"}}],"execute_url":"/v1/tools/base64url-validate/versions/1.0.0/execute"}