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

FieldAlgorithmPlatformNotes
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

EndpointLimitWindow
GET /api, GET /api/v260 requestsper minute per IP
POST /bulk5 requestsper minute per IP
POST /30 requestsper minute per IP