BaconHash API
BaconHash exposes a simple REST API at
https://api.baconhash.pw.
All endpoints require a Bearer token in the
Authorization header.
Contact me to obtain a token.
Authentication
Send your token as a standard HTTP Bearer header on every request:
Authorization: Bearer <your-token>
Endpoints
/search/{hash}
Look up a single hash. The hash is passed as a URL path segment and accepts any supported format.
# Plain MD5 hash
curl https://api.baconhash.pw/search/2707569be0aff4a956388a851c68b4c6 \
-H "Authorization: Bearer <token>"
{
"hash": "2707569be0aff4a956388a851c68b4c6",
"found": true,
"type": "md5",
"plain": "potato123"
}
# user:hash format
curl "https://api.baconhash.pw/search/pcaro:2707569be0aff4a956388a851c68b4c6" \
-H "Authorization: Bearer <token>"
{
"hash": "2707569be0aff4a956388a851c68b4c6",
"found": true,
"type": "md5",
"plain": "potato123",
"user": "pcaro"
}
# Domain dump line (NTLM) – URL-encode the value
curl "https://api.baconhash.pw/search/DOMAIN%5CAdmin%3A500%3Aaad3b435b51404eeaad3b435b51404ee%3A2000c92a544e63c3345c2b4a4d2379de%3A%3A%3A" \
-H "Authorization: Bearer <token>"
{
"hash": "2000c92a544e63c3345c2b4a4d2379de",
"found": true,
"type": "ntlm",
"plain": "potato123",
"user": "Admin",
"domain": "DOMAIN"
}
/search
Look up multiple hashes in a single request. Send a JSON body
with a hashes array;
results are returned in the same order as inputs.
curl -X POST https://api.baconhash.pw/search \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"hashes": [
"2707569be0aff4a956388a851c68b4c6",
"da39a3ee5e6b4b0d3255bfef95601890afd80709",
"notahash"
]
}'
{
"results": [
{"hash": "2707569be0aff4a956388a851c68b4c6", "found": true, "type": "md5", "plain": "potato123"},
{"hash": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "found": true, "type": "sha1", "plain": ""},
{"hash": "notahash", "found": false, "error": "Unrecognised hash format."}
]
}
Supported hash formats
| Format | Example |
|---|---|
|
Plain MD5 / NTLM 32 hex chars |
2707569be0aff4a956388a851c68b4c6 |
|
Plain SHA1 40 hex chars |
da39a3ee5e6b4b0d3255bfef95601890afd80709 |
user:hash |
pcaro:2707569be0aff4a956388a851c68b4c6 |
|
Domain dump NTLM, with or without domain |
Administrator:500:aad3b435…:2000c92a…::: DOMAIN\Admin:500:aad3b435…:2000c92a…::: |
|
LDAP SHA1 base64-encoded |
{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g= |
CLI client
The bacon client is a
lightweight Bash script that wraps the API. Download it and store your token
in ~/.baconhash:
# Download the client
curl -o bacon https://baconhash.pw/bacon && chmod +x bacon
# Store your token
echo "<your-token>" > ~/.baconhash
# Look up a single hash
./bacon 2707569be0aff4a956388a851c68b4c6
# Look up a file of hashes (one per line)
./bacon hashes.txt
Response fields
| Field | Type | Description |
|---|---|---|
hash |
string | The normalised hex hash that was looked up. |
found |
boolean | Whether a matching plaintext was found. |
type |
string | null |
Hash algorithm (md5,
ntlm,
sha1) when found.
|
plain |
string | null | Plaintext if found. |
user |
string | null | Username parsed from the input. |
domain |
string | null | Domain parsed from the input. |
error |
string | null | Error message if the input format was unrecognised. |