files/en-us/web/api/window/atob/index.md
{{APIRef("HTML DOM")}}
The atob() method of the {{domxref("Window")}} interface decodes a
string of data which has been encoded using {{glossary("Base64")}} encoding. You can use
the {{domxref("Window.btoa()")}} method to encode and transmit
data which may otherwise cause communication problems, then transmit it and use the
atob() method to decode the data again. For example, you can encode,
transmit, and decode control characters such as {{Glossary("ASCII")}} values 0 through 31.
Also consider using the {{jsxref("Uint8Array.fromBase64()")}} method, which creates a Uint8Array object from a base64-encoded string. It results in a byte array, which is easier to work with than a string containing raw bytes.
atob(encodedData)
encodedData
A binary string containing raw bytes decoded from encodedData. Strings in JavaScript are encoded as {{glossary("UTF-16")}}, so this means each character must have a code point less than 256, representing one byte of data.
InvalidCharacterError {{domxref("DOMException")}}
encodedData is not valid base64.const encodedData = window.btoa("Hello, world"); // encode a string
const decodedData = window.atob(encodedData); // decode the string
For more examples, see the {{domxref("Window.btoa()")}} method.
{{Specifications}}
{{Compat}}
atob is available in core-jsdata URLs