{"id":"issn-validate","version":"1.0.0","description":"Validate an 8-digit ISSN's mod 11 check digit (X allowed) and compute its 977-prefixed EAN-13 barcode form.","supported_operations":["validate an issn","check issn check digit","convert issn to ean 13 barcode","is this issn valid","issn checksum validator","journal serial number check digit","turn an issn into a 977 barcode"],"unsupported_operations":["looking up which journal or serial an ISSN actually identifies","validating an ISBN or ISMN (see isbn-validate / ismn-validate)","computing the L-ISSN (linking ISSN) across print and electronic versions"],"semantics":["issue_variant is optional and defaults to '00'; when provided it must be exactly 2 digits, else invalid_input.","issn accepts two lengths: 9 characters 'NNNN-NNNNc' with a literal '-' at position 5 (positions 1-4 and 6-8 are the 7 core digits, position 9 is the check character), or 8 characters with no separator (positions 1-7 core digits, position 8 the check character). Any other length is reason wrong_length, checked first.","issn (the normalized NNNN-NNNN form) and check_digit are always reconstructed from those raw positions, regardless of whether any character is actually a valid digit; both are null only when length already failed.","invalid_character fires when, for the 9-character form, position 5 is not '-', or any core digit position is not 0-9, or the check character is neither a digit nor 'X'.","ean13 requires only that the 7 core digits are all 0-9: ean13 = '977' + core digits + issue_variant + a freshly computed EAN-13 check digit (weight 1,3 alternating, mod 10) over the resulting 12 digits; ean13 is null when a core digit is invalid, even if the overall reason is invalid_character only because of the check character or hyphen.","Check digit (only evaluated once the hyphen/core/check-character positions are all valid): weights 8,7,6,5,4,3,2 over the 7 core digits; expected check character is (11 - sum mod 11) mod 11, X when 10. A mismatch is reason check_digit_mismatch.","valid is true only when length, charset and the check digit all pass, in that order; only one reason is ever returned."],"limits":{"max_issn_bytes":9},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["issn"],"properties":{"issn":{"type":"string","minLength":1,"maxLength":9},"issue_variant":{"type":"string","minLength":2,"maxLength":2,"pattern":"^[0-9]{2}$"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","issn","check_digit","ean13"],"properties":{"valid":{"type":"boolean"},"reason":{"type":["string","null"],"enum":[null,"wrong_length","invalid_character","check_digit_mismatch"]},"issn":{"type":["string","null"],"minLength":9,"maxLength":9},"check_digit":{"type":["string","null"],"minLength":1,"maxLength":1},"ean13":{"type":["string","null"],"minLength":13,"maxLength":13}}},"examples":[{"input":{"issn":"0378-5955"},"output":{"valid":true,"reason":null,"issn":"0378-5955","check_digit":"5","ean13":"9770378595002"}},{"input":{"issn":"0378-5955","issue_variant":"12"},"output":{"valid":true,"reason":null,"issn":"0378-5955","check_digit":"5","ean13":"9770378595125"}}],"execute_url":"/v1/tools/issn-validate/versions/1.0.0/execute"}