.PKL file signature

A Python pickle file begins with the bytes 80 04 at the start of the file. The signature is the same whatever the file is named, which is why a renamed or extensionless PICKLE file is still recognisable.

Known signatures

OffsetHexASCII
080 04Protocol 4, the default since Python 3.8.
080 05Protocol 5.

MIME type: application/octet-stream · usual extensions: .pkl, .pickle

How to check a file's signature

Without installing anything: drop the file on our detector. It reads the bytes in your browser and shows the hex dump alongside the verdict; nothing is uploaded.

macOS and Linux (Terminal):

xxd -l 32 file.pkl
file file.pkl

Windows (PowerShell):

Format-Hex -Path file.pkl -Count 32

If the bytes do not match

A file named .pkl whose first bytes are something else is not a PICKLE file. The common explanations are a wrong or deliberately misleading extension, a download that saved an HTML error page instead of the file, or a container such as ZIP wrapping the real content. The detector reports what the bytes say; the PICKLE guide explains what a genuine file should contain.