API Documentation
Free · No authentication required · 60 req/min per IP
GET
/api/v2
Recommended
Returns all 5 hash types and 8 platform links.
Request
GET http://faviconhasher.codejavu.tech/api/v2?url=https://example.com
Response
{
"favicon_url": "https://example.com/favicon.ico",
"hashes": {
"mmh3": -1234567890,
"md5": "d8e8fca2...",
"sha256":"4355a46b...",
"phash": "f8e0e0e0...",
"dhash": "3c3c3c3c..."
},
"technology": "Spring Boot",
"lookup_count": 42,
"links": {
"shodan": "https://www.shodan.io/search?query=http.favicon.hash:-1234567890",
"fofa": "https://en.fofa.info/result?qbase64=...",
"zoomeye":"https://www.zoomeye.org/...",
"censys": "https://search.censys.io/...",
"netlas": "https://app.netlas.io/...",
"virustotal":"https://www.virustotal.com/...",
"criminalip":"https://www.criminalip.io/...",
"validin":"https://app.validin.com/..."
}
}
GET
/api
Legacy v1
Backwards-compatible. MMH3 + MD5, Shodan/Censys/ZoomEye/FOFA only.
GET http://faviconhasher.codejavu.tech/api?url=https://example.com
POST
/bulk
Up to 50 URLs processed concurrently. JSON body with urls array.
{ "urls": ["https://example.com", "https://google.com"] }
Hash Algorithms
| Field | Algorithm | Platform | Notes |
|---|---|---|---|
| mmh3 | MurmurHash3 | Shodan, FOFA, ZoomEye, CriminalIP | Signed 32-bit int. Applied to base64-encoded favicon bytes. |
| md5 | MD5 | Censys, Validin | Hex string. Applied to raw favicon bytes. |
| sha256 | SHA-256 | Netlas | Hex string. Applied to raw favicon bytes. |
| phash | Perceptual Hash | Netlas fuzzy | Hex. Finds visually similar favicons. null if SVG. |
| dhash | Difference Hash | VirusTotal | Hex. Gradient perceptual hash. null if SVG. |
Code Examples
cURL
curl "http://faviconhasher.codejavu.tech/api/v2?url=https://example.com"
Python
import requests
r = requests.get("https://faviconhasher.codejavu.tech/api/v2",
params={"url": "https://example.com"})
d = r.json()
print(d['hashes']['mmh3'], d['technology'])
JavaScript
const r = await fetch("https://faviconhasher.codejavu.tech/api/v2?url=https://example.com");
const d = await r.json();
console.log(d.hashes.mmh3, d.technology);
Rate Limits
| Endpoint | Limit | Window |
|---|---|---|
| GET /api, GET /api/v2 | 60 requests | per minute per IP |
| POST /bulk | 5 requests | per minute per IP |
| POST / | 30 requests | per minute per IP |