{
    "success": true,
    "message": "Explorer DB API v1.0.0",
    "timestamp": "2026-04-18T03:32:41+00:00",
    "api_version": "1.0.0",
    "data": {
        "name": "Explorer DB API",
        "version": "1.0.0",
        "port": 8080,
        "endpoints": {
            "GET \/": "API information",
            "GET \/health": "Health check",
            "GET \/users": "List users",
            "GET \/users\/{id}": "Get user by ID",
            "POST \/users": "Create user",
            "PUT \/users\/{id}": "Update user",
            "DELETE \/users\/{id}": "Delete user",
            "GET \/bookmarks": "List bookmarks",
            "POST \/bookmarks": "Create bookmark",
            "GET \/websites": "List websites",
            "POST \/websites": "Create website",
            "GET \/folders": "List folders",
            "POST \/folders": "Create folder",
            "GET \/folders\/{id}\/browse": "Browse folder contents",
            "POST \/folders\/browse\/batch": "Browse multiple folders",
            "POST \/move\/content": "Move content item to different folder",
            "POST \/move\/folder": "Move folder to different parent",
            "GET \/tags": "List all tags with usage statistics",
            "GET \/tags\/stats": "Get tag statistics and analytics",
            "GET \/tags\/{name}\/content": "Get content items by tag name",
            "GET \/content\/{type}": "List content by type (21 types available)",
            "GET \/content\/{type}\/{id}": "Get content item by type and ID",
            "POST \/content\/{type}": "Create content item",
            "PUT \/content\/{type}\/{id}": "Update content item",
            "DELETE \/content\/{type}\/{id}": "Delete content item",
            "GET \/content-types": "List all content types",
            "GET \/content-types\/{id}": "Get content type by ID or key",
            "POST \/content-types": "Create new content type",
            "PUT \/content-types\/{id}": "Update content type",
            "DELETE \/content-types\/{id}": "Deactivate content type",
            "GET \/content-types\/stats": "Get content type statistics",
            "GET \/imported": "List imported items",
            "GET \/imported\/{id}": "Get imported item by ID",
            "POST \/imported": "Create imported item",
            "PUT \/imported\/{id}": "Update imported item",
            "DELETE \/imported\/{id}": "Delete imported item",
            "GET \/imported\/protocols": "List available protocols",
            "GET \/imported\/protocol\/{protocol}": "Get items by protocol",
            "GET \/icons": "List all icons (metadata only)",
            "GET \/icons\/{id}": "Get icon metadata or raw BLOB data (?raw=true)",
            "GET \/icons\/extension\/{ext}": "Get icon by file extension",
            "GET \/icons\/system": "Get system icons",
            "POST \/icons": "Create new icon (with base64 IconData)",
            "PUT \/icons\/{id}": "Update icon",
            "DELETE \/icons\/{id}": "Delete icon",
            "GET \/favicons": "List all content items with favicon data",
            "GET \/favicons\/stats": "Get favicon statistics across all content types",
            "GET \/favicons\/{type}": "Get favicon data for specific content type",
            "GET \/favicons\/{type}\/{id}": "Get favicon metadata or raw BLOB (?raw=true)",
            "GET \/previews": "List all content previews",
            "GET \/previews\/stats": "Get preview statistics",
            "GET \/previews\/{type}": "List previews for a content type",
            "GET \/previews\/{type}\/{id}": "Get preview image (raw BLOB) or metadata (?meta=true)",
            "DELETE \/previews\/{type}\/{id}": "Delete a preview",
            "GET \/search": "Global search",
            "GET \/chat\/rooms": "List chat rooms",
            "GET \/chat\/messages\/{roomId}": "Get chat messages",
            "GET \/callout-types": "List all callout types",
            "GET \/callout-types\/{name}": "Get callout type by name",
            "GET \/folders\/{id}\/bulletin-board\/posts": "Get bulletin board posts for folder",
            "POST \/folders\/{id}\/bulletin-board\/posts": "Create new bulletin board post",
            "GET \/folders\/{id}\/bulletin-board\/posts\/{postId}": "Get specific post with replies",
            "PUT \/folders\/{id}\/bulletin-board\/posts\/{postId}": "Update bulletin board post",
            "DELETE \/folders\/{id}\/bulletin-board\/posts\/{postId}": "Delete bulletin board post",
            "POST \/folders\/{id}\/bulletin-board\/posts\/{postId}\/replies": "Create reply to post",
            "GET \/folders\/{id}\/chat\/messages": "Get chat messages for folder",
            "POST \/folders\/{id}\/chat\/messages": "Send new chat message",
            "PUT \/folders\/{id}\/chat\/messages\/{messageId}": "Edit chat message",
            "DELETE \/folders\/{id}\/chat\/messages\/{messageId}": "Delete chat message",
            "GET \/folders\/{id}\/chat\/users": "Get online users in folder chat",
            "GET \/folders\/{id}\/chat\/search": "Search chat messages",
            "GET \/link-previews?url={url}": "Get link preview for URL",
            "POST \/link-previews": "Get multiple link previews",
            "PUT \/link-previews\/{id}": "Refresh link preview",
            "GET \/user\/preferences": "Get all user preferences",
            "GET \/user\/preferences\/{key}": "Get specific user preference",
            "POST \/user\/preferences": "Set user preferences (batch)",
            "PUT \/user\/preferences\/{key}": "Set specific user preference",
            "DELETE \/user\/preferences\/{key}": "Delete user preference",
            "GET \/user\/preferences\/category\/{category}": "Get preferences by category",
            "GET \/languages": "Get all active languages",
            "GET \/languages\/{code}": "Get specific language by code",
            "POST \/languages": "Create new language (Admin)",
            "PUT \/languages\/{code}": "Update language (Admin)",
            "DELETE \/languages\/{code}": "Deactivate language (Admin)",
            "GET \/languages\/stats": "Get language statistics",
            "GET \/countries": "Get all active countries",
            "GET \/countries\/{code}": "Get specific country by code",
            "GET \/countries\/region\/{region}": "Get countries by region",
            "GET \/countries\/search?q={query}": "Search countries by name",
            "GET \/countries\/regions": "Get list of regions",
            "GET \/countries\/stats": "Get country statistics",
            "POST \/countries": "Create new country (Admin)",
            "PUT \/countries\/{code}": "Update country (Admin)",
            "DELETE \/countries\/{code}": "Deactivate country (Admin)",
            "GET \/cities\/search?q={query}&country={code}&limit={num}": "Smart city search with disambiguation",
            "GET \/cities\/country\/{code}": "Get cities by country (paginated)",
            "GET \/cities\/{id}": "Get specific city by ID",
            "GET \/cities\/major": "Get major cities (capitals and metros)",
            "GET \/cities\/nearby?lat={lat}&lng={lng}&radius={km}": "Get cities near coordinates",
            "GET \/cities\/stats": "Get cities statistics",
            "POST \/cities": "Create new city (Admin)",
            "GET \/timezones": "Get all timezones with optional filters",
            "GET \/timezones\/search?q={query}": "Search timezones by name or identifier",
            "GET \/timezones\/country\/{code}": "Get timezones by country",
            "GET \/timezones\/{identifier}": "Get specific timezone by ID or IANA identifier",
            "GET \/timezones\/offset\/{offset}": "Get timezones by UTC offset (hours)",
            "GET \/timezones\/regions": "Get timezone regions with statistics",
            "GET \/timezones\/stats": "Get timezone statistics",
            "GET \/timezones\/convert?from={tz1}&to={tz2}&time={time}": "Convert time between timezones",
            "POST \/timezones": "Create new timezone (Admin)",
            "GET \/calendars": "Get all calendar systems",
            "GET \/calendars\/{code}": "Get specific calendar system by code",
            "GET \/calendars\/current": "Get current date in all calendar systems",
            "GET \/calendars\/convert?from={cal1}&to={cal2}&date={date}": "Convert dates between calendars",
            "GET \/calendars\/search?q={query}&type={type}": "Search calendar systems",
            "GET \/calendars\/country\/{code}": "Get calendars used by country",
            "GET \/calendars\/stats": "Get calendar statistics",
            "GET \/user\/profile": "Get current user profile",
            "POST \/user\/profile": "Update user profile (supports file upload)",
            "GET \/user\/avatar": "Get current user avatar image",
            "GET \/user\/avatar\/{userId}": "Get specific user avatar image",
            "DELETE \/user\/avatar": "Delete current user avatar",
            "GET \/age-restrictions": "Get all country age restrictions",
            "GET \/age-restrictions\/{countryCode}": "Get age restrictions for specific country",
            "GET \/age-restrictions\/check?country={code}&content_type={type}&user_age={age}": "Check age requirement compliance",
            "GET \/age-restrictions\/content-type\/{contentType}": "Get age requirements by content type",
            "GET \/age-restrictions\/strict-enforcement": "Get countries with strict enforcement",
            "GET \/age-restrictions\/search?q={query}": "Search age restrictions by legal framework",
            "GET \/age-restrictions\/stats": "Get age restriction statistics",
            "POST \/age-restrictions": "Create new country age restrictions",
            "POST \/auth\/login": "User login with email and password",
            "POST \/auth\/register": "Register new user account",
            "POST \/auth\/verify": "Verify authentication token",
            "POST \/auth\/refresh": "Refresh authentication token",
            "POST \/auth\/logout": "User logout",
            "GET \/roles": "Get all user roles",
            "GET \/user\/{id}\/role": "Get user role",
            "PUT \/user\/{id}\/role": "Update user role (admin only)",
            "GET \/user\/{id}\/permissions": "Get user permissions",
            "POST \/permissions\/check": "Check if user has specific permission",
            "GET \/users\/by-role\/{roleName}": "Get users by role name",
            "GET \/folder-permissions\/{userId}": "Get folder permissions for user",
            "GET \/folder-permissions\/user\/{userId}\/folders": "Get folders accessible by moderator",
            "POST \/folder-permissions": "Grant folder permission to moderator (admin only)",
            "DELETE \/folder-permissions\/{userId}\/{folderId}": "Revoke folder permission (admin only)",
            "GET \/folder-permissions\/folder\/{folderId}\/moderators": "Get moderators for folder",
            "GET \/moderators": "Get all moderators with folder assignments (admin only)",
            "GET \/folder-permissions\/check": "Check if user has permission on folder",
            "POST \/folder-permissions\/all-folders": "Grant all folders permission (admin only)",
            "POST \/upload\/image": "Upload single image file",
            "POST \/upload\/images": "Upload multiple image files",
            "GET \/upload\/images": "List uploaded images (paginated)",
            "GET \/upload\/image\/{filename}": "Get uploaded image file",
            "DELETE \/upload\/image\/{filename}": "Delete uploaded image"
        },
        "content_types": [
            "anonet",
            "archie",
            "bbs",
            "bittorrent",
            "blogs",
            "coap",
            "discord",
            "documents",
            "dot",
            "finger",
            "freenet",
            "ftp",
            "gameservers",
            "gemini",
            "git",
            "gnunet",
            "gopher",
            "gophersearch",
            "hls",
            "i2p",
            "ipfs",
            "irc",
            "lokinet",
            "mastodon",
            "matrix",
            "mdns",
            "minecraft",
            "mixmaster",
            "mqtt",
            "mud",
            "nntp",
            "ntp",
            "podcasts",
            "quic",
            "radio",
            "repositories",
            "riffle",
            "rss",
            "rtmp",
            "sftp",
            "shoutcast",
            "signal",
            "smtp",
            "snmp",
            "software",
            "ssh",
            "steam",
            "subreddits",
            "svn",
            "syslog",
            "teamspeak",
            "telnet",
            "tor",
            "twitch",
            "utopia",
            "wais",
            "websites",
            "xmpp",
            "youtube",
            "z3950",
            "zeronet"
        ]
    }
}