Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.oathnet.org/llms.txt

Use this file to discover all available pages before exploring further.

Overview

OathNet provides instant OSINT lookups for 10+ platforms. Get user profiles, account history, and cross-platform links with a single API call.

Available Services

IP Info

Geolocation, ISP, and network details for any IP address

Steam

Steam profile lookup by Steam64 ID or custom URL

Xbox

Xbox Live profile by gamertag or XUID

Discord

User info, username history, and Roblox linking

Roblox

Roblox user profile and username history

Minecraft

Minecraft username history

Holehe

Check which services have accounts for an email

GHunt

Google account information from Gmail address

Subdomains

Extract subdomains for a domain

Common Parameters

All OSINT endpoints accept:
ParameterTypeDescription
search_idstringSearch session ID for grouped lookups

Response Format

All OSINT endpoints return:
{
  "success": true,
  "message": "Description of result",
  "data": { ... },
  "lookups_left": 999,
  "search_session": {
    "id": "sess_abc123"
  }
}

Rate Limits

OSINT endpoints have per-service rate limits:
ServiceRequests/MinuteDaily Limit
IP Info60Unlimited
Steam301,000
Xbox301,000
Discord301,000
Roblox301,000
Holehe10500
GHunt10500

Cross-Platform Investigation

Combine multiple lookups for comprehensive profiles:
import requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"x-api-key": API_KEY}

def investigate_discord_user(discord_id):
    """Build a comprehensive profile from a Discord ID."""

    # Get Discord info
    discord = requests.get(
        "https://oathnet.org/api/service/discord-userinfo",
        params={"discord_id": discord_id},
        headers=HEADERS
    ).json()

    print(f"Discord: {discord['data']['username']}")
    print(f"Created: {discord['data']['creation_date']}")

    # Get username history
    history = requests.get(
        "https://oathnet.org/api/service/discord-username-history",
        params={"discord_id": discord_id},
        headers=HEADERS
    ).json()

    print(f"Previous names: {[h['name'] for h in history['history']]}")

    # Check for linked Roblox
    roblox_link = requests.get(
        "https://oathnet.org/api/service/discord-to-roblox",
        params={"discord_id": discord_id},
        headers=HEADERS
    ).json()

    if roblox_link["success"] and roblox_link["data"].get("roblox_id"):
        roblox_id = roblox_link["data"]["roblox_id"]

        # Get Roblox profile
        roblox = requests.get(
            "https://oathnet.org/api/service/roblox-userinfo",
            params={"user_id": roblox_id},
            headers=HEADERS
        ).json()

        print(f"Linked Roblox: {roblox['data']['username']}")
        print(f"Roblox ID: {roblox_id}")

    return {
        "discord": discord["data"],
        "history": history["history"],
        "roblox": roblox["data"] if roblox_link["success"] else None
    }

# Run investigation
profile = investigate_discord_user("123456789012345678")

Error Handling

OSINT endpoints may return errors for:
  • Invalid IDs: Malformed platform identifiers
  • Not Found: Account doesn’t exist
  • Rate Limited: Too many requests
  • Unavailable: External service temporarily down
response = requests.get(
    "https://oathnet.org/api/service/discord-userinfo",
    params={"discord_id": "invalid"},
    headers=HEADERS
).json()

if not response["success"]:
    print(f"Error: {response['message']}")

Search Sessions

Group OSINT lookups with search sessions for better tracking