Developers
Open API
OathNet's API needs an x-api-key you only get after signup + a paid plan. Ours needs nothing. Base URL:
https://evidence-logger-swat-1800.pages.devCOPY
GET /api/search?q={anything} RUN ▸
Smart search — auto-detects email / username / domain / IP / Discord ID / URL / phone and fans out to every relevant source.
curl "https://evidence-logger-swat-1800.pages.dev/api/search?q=test@gmail.com"COPY
GET /api/breach?q={email|user|domain} RUN ▸
Breach corpus search — XposedOrNot + HIBP catalog join + Hudson Rock stealer verdict + LeakCheck index.
curl "https://evidence-logger-swat-1800.pages.dev/api/breach?q=test@gmail.com"COPY
GET /api/stealer?term={email|user|domain|ip} RUN ▸
Infostealer-log exposure — the data class paid platforms gate hardest. Free here.
curl "https://evidence-logger-swat-1800.pages.dev/api/stealer?term=wired.com"COPY
GET /api/email?email={addr} RUN ▸
Email footprint — breaches, disposable check, Gravatar, PGP key, stealer intel.
curl "https://evidence-logger-swat-1800.pages.dev/api/email?email=test@gmail.com"COPY
GET /api/username?name={handle} RUN ▸
34-platform existence sweep with profile links.
curl "https://evidence-logger-swat-1800.pages.dev/api/username?name=builderman"COPY
GET /api/discord?id={snowflake} RUN ▸
Discord public profile + badges + local snowflake decode.
curl "https://evidence-logger-swat-1800.pages.dev/api/discord?id=80351110224678912"COPY
GET /api/roblox?user={name|id} RUN ▸
Roblox profile — avatar, friends, followers, join date, verified badge.
curl "https://evidence-logger-swat-1800.pages.dev/api/roblox?user=builderman"COPY
GET /api/steam?id={vanity|id64} RUN ▸
Steam profile + Steam2/Steam3 ID conversion + VAC/trade status.
curl "https://evidence-logger-swat-1800.pages.dev/api/steam?id=gabelogannewell"COPY
GET /api/minecraft?name={name|uuid} RUN ▸
Minecraft UUID, full name history, skin/cape textures.
curl "https://evidence-logger-swat-1800.pages.dev/api/minecraft?name=Notch"COPY
GET /api/xbox?gt={gamertag} RUN ▸
Xbox gamertag profile — gamerscore, avatar (best-effort public scrape).
curl "https://evidence-logger-swat-1800.pages.dev/api/xbox?gt=Major%20Nelson"COPY
GET /api/github?user={login} RUN ▸
GitHub profile + top repositories.
curl "https://evidence-logger-swat-1800.pages.dev/api/github?user=octocat"COPY
GET /api/ip?ip={ipv4} RUN ▸
IP intel — geo, ASN, VPN/proxy/Tor, open ports, CVEs.
curl "https://evidence-logger-swat-1800.pages.dev/api/ip?ip=1.1.1.1"COPY
GET /api/domain?d={domain} RUN ▸
Domain recon — RDAP, DNS, CT subdomains, urlscan captures.
curl "https://evidence-logger-swat-1800.pages.dev/api/domain?d=oathnet.org"COPY
GET /api/wayback?url={url} RUN ▸
Wayback Machine — closest snapshot + recent archive history.
curl "https://evidence-logger-swat-1800.pages.dev/api/wayback?url=oathnet.org"COPY
GET /api/health · /api/stats RUN ▸
Service status and platform stats. Always 200.
curl "https://evidence-logger-swat-1800.pages.dev/api/health"COPY
Response contract
Every endpoint returns { success, query, verdict, blocks[], sources[], took_ms, free: true }. verdict is human-grade (COMPROMISED , NO HITS …). sources[] shows upstream status + latency per source. Errors use { success:false, error } with a 4xx/5xx status.