{
  "service": "VYLUX APIS",
  "creator": "VYLUX TECH",
  "categories": {
    "AI": [
      {
        "method": "GET/POST",
        "path": "/ai/chatgpt",
        "description": "GPT 5.6 Luna (OpenAI) — flagship reasoning assistant with 1M-token context, for conversation, writing, coding and analysis.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/chatgpt?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/claude",
        "description": "Claude Fable 5.1 (Anthropic) — calm, careful assistant strong at long-form reasoning, writing and technical explanation.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/claude?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/copilot",
        "description": "Microsoft Copilot (powered by GPT-5.6) — productivity assistant for quick answers, summaries and everyday tasks.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/copilot?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/deepseek",
        "description": "DeepSeek V4 Flash (DeepSeek) — high-performance assistant known for deep reasoning and complex problem-solving.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/deepseek?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/dreamanalyze",
        "description": "DreamAnalyzer — interprets the themes and symbolism behind your dreams.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/dreamanalyze?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/flux",
        "description": "FLUX.1 (Black Forest Labs) — fast text-to-image generator that returns a picture from a prompt.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/flux?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/gemini",
        "description": "Gemini 3.8 Flash (Google) — fast, up-to-date answers with understanding of images.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/gemini?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/gemma",
        "description": "Gemma 4 31B (Google) — newest open model excelling at reasoning, coding and multilingual tasks.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/gemma?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/glm",
        "description": "GLM 5.3 Flash (Zhipu / Z.ai) — versatile assistant strong at reasoning, coding and Chinese-language tasks.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/glm?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/grok",
        "description": "Grok 4.6 (xAI) — witty, direct assistant with fresh knowledge of the latest news and culture.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/grok?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/kilo",
        "description": "Kilo Ultra — powerful reasoning assistant for long-context analysis, code and math.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/kilo?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/kimi",
        "description": "Kimi K2.7 (Moonshot AI) — assistant with strong long-context reading and bilingual ability.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/kimi?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/llama",
        "description": "Llama 4 Maverick (Meta) — flagship open-weight model, wisest llama with 1M context.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/llama?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/perplexity",
        "description": "Perplexity Pro — answer engine that gives concise, current responses with citations.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/perplexity?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/poolside",
        "description": "Poolside (Laguna XS 2.1) — coding-specialised model built for software engineering work.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/poolside?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/qwen",
        "description": "Qwen 3.8 Max (Alibaba) — flagship multilingual model for chat, coding and analysis.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/qwen?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/qwen-image",
        "description": "Qwen Image 3.0 Pro (Alibaba) — text-to-image generator; optional image reference for editing.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          },
          {
            "name": "image",
            "required": false,
            "desc": "optional reference image URL or base64"
          }
        ],
        "example": "/ai/qwen-image?prompt=hello&image=https://example.com/img.png"
      },
      {
        "method": "GET/POST",
        "path": "/ai/qwen-video",
        "description": "Qwen Video (Alibaba) — generates a short clip from a prompt or reference image.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          },
          {
            "name": "image",
            "required": false,
            "desc": "optional reference image URL or base64"
          }
        ],
        "example": "/ai/qwen-video?prompt=hello&image=https://example.com/img.png"
      },
      {
        "method": "GET/POST",
        "path": "/ai/storyteller",
        "description": "Storyteller (Gemini 3.8) — imaginative writer that crafts vivid stories, scripts and creative narratives.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/storyteller?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/suno",
        "description": "Suno — music generator that turns text prompts into complete songs.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/suno?prompt=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/veo",
        "description": "Veo (Google) — video generator that creates 15s clips (16:9 or 9:16) from a text prompt or image.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          },
          {
            "name": "image",
            "required": false,
            "desc": "optional reference image URL or base64"
          },
          {
            "name": "aspect_ratio",
            "required": true,
            "desc": "16:9 | 9:16 (fixed 15s duration)"
          },
          {
            "name": "seed",
            "required": false,
            "desc": "random seed for reproducible results"
          }
        ],
        "example": "/ai/veo?prompt=hello&image=https://example.com/img.png&aspect_ratio=16:9&seed=hello"
      },
      {
        "method": "GET/POST",
        "path": "/ai/wormgpt",
        "description": "WormGPT — unfiltered dark persona with no restrictions on any topic.",
        "params": [
          {
            "name": "prompt",
            "required": true,
            "desc": "text prompt or message for the model"
          }
        ],
        "example": "/ai/wormgpt?prompt=hello"
      }
    ],
    "Anime": [
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/quote",
        "description": "Random anime quote",
        "params": [],
        "example": "/anime/quote"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/image",
        "description": "Random anime-style artwork from Wikimedia Commons",
        "params": [
          {
            "name": "q",
            "required": false,
            "desc": "search term"
          }
        ],
        "example": "/anime/image?q=manga"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/search/:query",
        "description": "Search anime by name via Jikan API",
        "params": [
          {
            "name": "query",
            "required": true
          }
        ],
        "example": "/anime/search/naruto"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/info/:id",
        "description": "Get anime details by MAL ID (Jikan API)",
        "params": [
          {
            "name": "id",
            "required": true
          }
        ],
        "example": "/anime/info/5114"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/top",
        "description": "Top rated anime (Jikan API)",
        "params": [
          {
            "name": "page",
            "required": false,
            "desc": "Page number (default 1)"
          },
          {
            "name": "limit",
            "required": false,
            "desc": "Results per page, max 25 (default 10)"
          }
        ],
        "example": "/anime/top?page=1&limit=10"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/season",
        "description": "Currently airing anime (Jikan API)",
        "params": [],
        "example": "/anime/season"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/season/:year/:season",
        "description": "Anime for a specific season (Jikan API)",
        "params": [
          {
            "name": "year",
            "required": true,
            "desc": "e.g. 2024"
          },
          {
            "name": "season",
            "required": true,
            "desc": "winter, spring, summer, or fall"
          }
        ],
        "example": "/anime/season/2024/winter"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/genre",
        "description": "List all anime genres (Jikan API)",
        "params": [],
        "example": "/anime/genre"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/character/:id",
        "description": "Get character details by MAL ID (Jikan API)",
        "params": [
          {
            "name": "id",
            "required": true
          }
        ],
        "example": "/anime/character/1"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/waifu",
        "description": "Random waifu image",
        "params": [],
        "example": "/anime/waifu"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/neko",
        "description": "Random neko image",
        "params": [],
        "example": "/anime/neko"
      },
      {
        "category": "Anime",
        "method": "GET",
        "path": "/anime/shinobu",
        "description": "Random shinobu image",
        "params": [],
        "example": "/anime/shinobu"
      }
    ],
    "Audio": [
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/tts",
        "description": "Text-to-speech (Google Translate TTS)",
        "params": [
          {
            "name": "text",
            "required": true,
            "desc": "text to speak (max 200 chars)"
          },
          {
            "name": "lang",
            "required": false,
            "desc": "language code"
          }
        ],
        "example": "/audio/tts?text=hello%20world&lang=en"
      },
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/tts/piccy",
        "description": "TTS via PiccyBot (6 free voices: alloy, echo, fable, onyx, nova, shimmer)",
        "params": [
          {
            "name": "text",
            "required": true,
            "desc": "text to speak (max 5000 chars)"
          },
          {
            "name": "voice",
            "required": false,
            "desc": "voice name (default: alloy)"
          }
        ],
        "example": "/audio/tts/piccy?text=Hello%20world&voice=nova"
      },
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/tts/voices",
        "description": "List available PiccyBot TTS voices",
        "params": [],
        "example": "/audio/tts/voices"
      },
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/effects",
        "description": "List all available audio effects (bass, chipmunk, deep, echo, fast, nightcore, reverse, robot, slow, etc.)",
        "params": [],
        "example": "/audio/effects"
      },
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/splitter",
        "description": "Separate vocals from instrumentals in a song (Demucs, in-process)",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file (mp3, wav, etc.)"
          },
          {
            "name": "stems",
            "required": false,
            "desc": "Number of stems: 2 (vocals+instrumental) or 4 (+drums+bass). Default: 2"
          }
        ],
        "example": "/audio/splitter?url=https://example.com/song.mp3&stems=2"
      },
      {
        "category": "Audio",
        "method": "GET",
        "path": "/audio/stem/:job/:file",
        "description": "Download a separated stem file by job id and file name",
        "params": [
          {
            "name": "job",
            "required": true,
            "desc": "job id from /audio/splitter"
          },
          {
            "name": "file",
            "required": true,
            "desc": "relative stem file path (e.g. htdemucs/input/vocals.wav)"
          }
        ],
        "example": "/audio/stem/abc123/htdemucs/input/vocals.wav"
      },
      {
        "method": "GET",
        "path": "/audio/bass",
        "description": "Boost audio bass",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/bass?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/blown",
        "description": "Blown / lo-fi audio effect",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/blown?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/chipmunk",
        "description": "Chipmunk / pitched-up voice",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/chipmunk?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/deep",
        "description": "Deep / pitched-down voice",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/deep?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/earrape",
        "description": "Boost audio volume to max",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/earrape?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/echo",
        "description": "Add echo effect to audio",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/echo?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/fast",
        "description": "Speed up audio",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/fast?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/nightcore",
        "description": "Convert audio to nightcore",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/nightcore?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/reverse",
        "description": "Reverse audio playback",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/reverse?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/robot",
        "description": "Robotic voice effect",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/robot?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/slow",
        "description": "Slow down audio",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/slow?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/tempo",
        "description": "Change tempo of audio",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/tempo?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/treble",
        "description": "Treble-boost an audio file",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/treble?url=https://example.com/song.mp3"
      },
      {
        "method": "GET",
        "path": "/audio/volume",
        "description": "Boost audio volume 2x",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "URL of the audio file to process (mp3, wav, etc.)"
          }
        ],
        "example": "/audio/volume?url=https://example.com/song.mp3"
      }
    ],
    "Canvas": [
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/welcome",
        "description": "Group welcome card: member avatar + name on a designed banner (PNG link)",
        "params": [
          {
            "name": "name",
            "required": true
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "group",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/welcome?name=John&avatar=https://github.com/github.png&group=Vylux%20Group"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/leave",
        "description": "Group leave/goodbye card: member avatar + name (PNG link)",
        "params": [
          {
            "name": "name",
            "required": true
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "group",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/leave?name=John&avatar=https://github.com/github.png&group=Vylux%20Group"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/rank",
        "description": "Level/rank XP progress card for gamified groups (PNG link)",
        "params": [
          {
            "name": "name",
            "required": true
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "level",
            "required": false
          },
          {
            "name": "xp",
            "required": false
          },
          {
            "name": "maxxp",
            "required": false
          },
          {
            "name": "rank",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/rank?name=John&level=7&xp=1250&maxxp=2000&rank=3&avatar=https://github.com/github.png"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/music",
        "description": "\"Now playing\" music card with artwork, title, artist and progress bar (PNG link)",
        "params": [
          {
            "name": "title",
            "required": true
          },
          {
            "name": "artist",
            "required": false
          },
          {
            "name": "thumb",
            "required": false
          },
          {
            "name": "progress",
            "required": false
          },
          {
            "name": "start",
            "required": false
          },
          {
            "name": "end",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/music?title=Never%20Gonna%20Give%20You%20Up&artist=Rick%20Astley&progress=35&start=1:12&end=3:33&thumb=<url>"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/quotly",
        "description": "Telegram-style quote card (Quotly): avatar, name and quoted text bubble (PNG link)",
        "params": [
          {
            "name": "text",
            "required": true
          },
          {
            "name": "name",
            "required": false
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "reply_name",
            "required": false
          },
          {
            "name": "reply_text",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/quotly?text=Ship%20fast,%20break%20things.&name=Rick&avatar=<url>"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/brat",
        "description": "Brat-album style sticker: lowercase text on lime (or dark) background (PNG link)",
        "params": [
          {
            "name": "text",
            "required": true
          },
          {
            "name": "dark",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/brat?text=vylux%20api%20on%20top"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/ytcmt",
        "description": "Fake YouTube comment screenshot with avatar, likes and reply row (PNG link)",
        "params": [
          {
            "name": "username",
            "required": true
          },
          {
            "name": "text",
            "required": true
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "likes",
            "required": false
          },
          {
            "name": "time",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/ytcmt?username=DevGuy&text=Who%20is%20watching%20in%202026?&likes=4.2K"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/tweet",
        "description": "Fake tweet/X post screenshot with avatar, verified check and engagement counts (PNG link)",
        "params": [
          {
            "name": "name",
            "required": true
          },
          {
            "name": "username",
            "required": true
          },
          {
            "name": "text",
            "required": true
          },
          {
            "name": "avatar",
            "required": false
          },
          {
            "name": "likes",
            "required": false
          },
          {
            "name": "retweets",
            "required": false
          },
          {
            "name": "time",
            "required": false
          },
          {
            "name": "verified",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/tweet?name=Vylux%20Tech&username=vyluxtech&text=API%20is%20live%20🚀&likes=12K&retweets=3.1K&verified=1"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/carbon",
        "description": "Carbon-style code screenshot: syntax-highlighted snippet in a window frame (PNG link)",
        "params": [
          {
            "name": "code",
            "required": true
          },
          {
            "name": "title",
            "required": false
          },
          {
            "name": "lang",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/carbon?code=const%20x%20=%201;%20//%20hello&title=index.js&lang=js"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/wanted",
        "description": "One Piece style WANTED poster overlay for any photo URL (PNG link)",
        "params": [
          {
            "name": "image",
            "required": true
          },
          {
            "name": "name",
            "required": false
          },
          {
            "name": "bounty",
            "required": false
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/wanted?image=<photo-url>&name=Monkey%20D.%20Luffy&bounty=3000000000"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/wasted",
        "description": "GTA \"WASTED\" screen overlay on any photo URL (PNG link)",
        "params": [
          {
            "name": "image",
            "required": true
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/wasted?image=<photo-url>"
      },
      {
        "category": "Canvas",
        "method": "GET",
        "path": "/canvas/jail",
        "description": "Jail-bars overlay on any photo/avatar URL (PNG link)",
        "params": [
          {
            "name": "image",
            "required": true
          },
          {
            "name": "base64",
            "required": false
          }
        ],
        "example": "/canvas/jail?image=<photo-url>"
      }
    ],
    "CodeRunner": [
      {
        "category": "CodeRunner",
        "method": "POST",
        "path": "/coderunner/python",
        "description": "Run Python code (sandboxed, 5s timeout)",
        "params": [
          {
            "name": "code",
            "required": true,
            "desc": "Python code to execute"
          }
        ],
        "example": "/coderunner/python (POST: {\"code\": \"print(2+2)\"})"
      },
      {
        "category": "CodeRunner",
        "method": "POST",
        "path": "/coderunner/javascript",
        "description": "Run JavaScript code (Node.js, 5s timeout)",
        "params": [
          {
            "name": "code",
            "required": true,
            "desc": "JavaScript code to execute"
          }
        ],
        "example": "/coderunner/javascript (POST: {\"code\": \"console.log(2+2)\"})"
      }
    ],
    "Converter": [
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/video-to-gif",
        "description": "Convert video URL to GIF",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "start",
            "required": false
          },
          {
            "name": "duration",
            "required": false
          },
          {
            "name": "fps",
            "required": false
          },
          {
            "name": "width",
            "required": false
          }
        ],
        "example": "/converter/video-to-gif (POST: {\"url\":\"https://example.com/video.mp4\",\"start\":0,\"duration\":5,\"fps\":10,\"width\":480})"
      },
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/gif-to-video",
        "description": "Convert GIF to MP4 video",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/converter/gif-to-video (POST: {\"url\":\"https://example.com/anim.gif\"})"
      },
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/image-to-sticker",
        "description": "Convert image to WebP sticker (sharp)",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "size",
            "required": false
          }
        ],
        "example": "/converter/image-to-sticker (POST: {\"url\":\"https://example.com/img.png\",\"size\":512})"
      },
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/audio-to-mp3",
        "description": "Convert audio URL to MP3",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "bitrate",
            "required": false
          }
        ],
        "example": "/converter/audio-to-mp3 (POST: {\"url\":\"https://example.com/audio.wav\",\"bitrate\":\"192k\"})"
      },
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/video-to-mp3",
        "description": "Extract audio from video as MP3",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "bitrate",
            "required": false
          }
        ],
        "example": "/converter/video-to-mp3 (POST: {\"url\":\"https://example.com/video.mp4\",\"bitrate\":\"192k\"})"
      },
      {
        "category": "Converter",
        "method": "POST",
        "path": "/converter/video-to-sticker",
        "description": "Convert video to animated WebP sticker",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "size",
            "required": false
          },
          {
            "name": "fps",
            "required": false
          }
        ],
        "example": "/converter/video-to-sticker (POST: {\"url\":\"https://example.com/video.mp4\",\"size\":512,\"fps\":15})"
      }
    ],
    "Downloaders": [
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/tiktok",
        "description": "Download TikTok media",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/tiktok?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/youtube",
        "description": "YouTube direct stream URLs (video+audio) via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false,
            "desc": "e.g. 720"
          }
        ],
        "example": "/download/youtube?url=<youtube url>&quality=720"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/ytmp3",
        "description": "YouTube best-audio stream URL (mp3-ready)",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/ytmp3?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/ytmp4",
        "description": "YouTube MP4 stream URLs (all available qualities)",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false,
            "desc": "e.g. 720 (default)"
          }
        ],
        "example": "/download/ytmp4?url=<youtube url>&quality=720"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/twitter",
        "description": "Download Twitter/X media",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/twitter?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/facebook",
        "description": "Download Facebook video",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/facebook?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/instagram",
        "description": "Download Instagram media",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/instagram?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/pinterest",
        "description": "Download Pinterest media",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/pinterest?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/soundcloud",
        "description": "Download SoundCloud audio",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/soundcloud?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/reddit",
        "description": "Reddit post video/audio (v.redd.it) via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/reddit?url=https://www.reddit.com/r/xxx/comments/.../"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/vimeo",
        "description": "Vimeo video direct URLs via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false
          }
        ],
        "example": "/download/vimeo?url=https://vimeo.com/123456789"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/dailymotion",
        "description": "Dailymotion video direct URLs via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false
          }
        ],
        "example": "/download/dailymotion?url=https://www.dailymotion.com/video/x8xxxxx"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/twitch",
        "description": "Twitch clip/VOD direct URLs via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false
          }
        ],
        "example": "/download/twitch?url=https://clips.twitch.tv/XXXX"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/tumblr",
        "description": "Tumblr post video/image via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/tumblr?url=<tumblr post url>"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/bilibili",
        "description": "BiliBili video direct URLs via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "quality",
            "required": false
          }
        ],
        "example": "/download/bilibili?url=https://www.bilibili.tv/video/xxxxx"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/mediafire",
        "description": "MediaFire direct download link (our own scraper)",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/mediafire?url=https://www.mediafire.com/file/xxx/file.zip"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/gdrive",
        "description": "Google Drive public file — resolves direct-download link (handles big-file confirm)",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/gdrive?url=https://drive.google.com/file/d/ID/view"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/gitclone",
        "description": "GitHub repo — clone/zip/tarball links in one shot",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/gitclone?url=https://github.com/imputnet/cobalt"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/spotify",
        "description": "Spotify song download - pass q (song name) or url (Spotify track link)",
        "params": [
          {
            "name": "q",
            "required": false,
            "desc": "Song name to search"
          },
          {
            "name": "url",
            "required": false,
            "desc": "Spotify track link"
          }
        ],
        "example": "/download/spotify?q=hello&url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/scribd",
        "description": "Scribd document — downloads pages and assembles a hosted PDF (/files link, kept 2h)",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/scribd?url=https://www.scribd.com/document/xxxxx/Doc-Title"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/mega",
        "description": "Mega.nz file — decrypts and hosts a copy on /files (kept 2h); folders return listings. Max 200MB",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/mega?url=https://mega.nz/file/XXXX&key=XXXX  (or url-encode # as %23)"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/apkmod",
        "description": "LiteApks modded APKs — search the catalog, or resolve a direct tokenized download link for any app/game (link valid ~3h)",
        "params": [
          {
            "name": "query",
            "required": false,
            "note": "search mode"
          },
          {
            "name": "url",
            "required": false,
            "note": "app page url or slug (resolve mode)"
          },
          {
            "name": "version",
            "required": false,
            "note": "1-based version index when an app lists several mods (default 1)"
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/download/apkmod?query=spotify  |  /download/apkmod?url=https://liteapks.com/spotify-2.html&version=1"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/music/lyrics",
        "description": "Song lyrics (plain + synced LRC where available) via LRCLIB",
        "params": [
          {
            "name": "q",
            "required": false
          },
          {
            "name": "track",
            "required": false
          },
          {
            "name": "artist",
            "required": false
          }
        ],
        "example": "/download/music/lyrics?track=shape of you&artist=ed sheeran"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/music/search",
        "description": "Track search via iTunes: artwork, 30s preview MP3, album info",
        "params": [
          {
            "name": "q",
            "required": true
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/download/music/search?q=blinding lights&limit=10"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/music/spotify",
        "description": "Spotify metadata (no login): track/album/playlist/artist from the embed page",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/music/spotify?url=https://open.spotify.com/track/4PTG3Z6ehGkBFwjybzWkR8"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/music/youtube",
        "description": "YouTube video/audio metadata: title, channel, duration, views, thumbnails, keywords",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/music/youtube?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/music/transcript",
        "description": "YouTube transcript (plain text) via kome.ai backend",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/music/transcript?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/yt",
        "description": "Download YouTube audio/video (format=audio|video)",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "format",
            "required": false
          }
        ],
        "example": "/download/yt?url=https://example.com&format=audio"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/x",
        "description": "Download X/Twitter media",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/x?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/fb",
        "description": "Download Facebook video (alias)",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/fb?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/apk",
        "description": "Download APK from APKPure",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/download/apk?q=hello"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/download/github",
        "description": "Download GitHub repo as zip",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/download/github?url=https://example.com"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/downloader/music/audio",
        "description": "Music audio search/download (source=spotify|itunes)",
        "params": [
          {
            "name": "term",
            "required": true
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/downloader/music/audio?term=hello world&limit=10"
      },
      {
        "category": "Downloaders",
        "method": "GET",
        "path": "/downloader/music/video",
        "description": "Music video search/download",
        "params": [
          {
            "name": "term",
            "required": true
          },
          {
            "name": "quality",
            "required": false
          }
        ],
        "example": "/downloader/music/video?term=hello world&quality=720"
      }
    ],
    "Entertainment": [
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/vidsrc",
        "description": "Resolve movie/TV/anime stream (HLS + subtitles)",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "movie/TV/anime id (TMDb, IMDb tt..., ani<anilist>, or MAL number)"
          },
          {
            "name": "type",
            "required": false,
            "desc": "movie | tv | anime (default movie)"
          },
          {
            "name": "season",
            "required": false,
            "desc": "required when type=tv"
          },
          {
            "name": "episode",
            "required": false,
            "desc": "required when type=tv or type=anime"
          },
          {
            "name": "lang",
            "required": false,
            "desc": "sub | dub (anime only, default sub)"
          }
        ],
        "example": "/entertainment/vidsrc?id=385687&type=movie"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/vidlink",
        "description": "Resolve movie/TV stream via VidLink (MP4/HLS, multi-quality)",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "TMDb id (movie or TV show)"
          },
          {
            "name": "type",
            "required": false,
            "desc": "movie | tv (default movie)"
          },
          {
            "name": "season",
            "required": false,
            "desc": "required when type=tv"
          },
          {
            "name": "episode",
            "required": false,
            "desc": "required when type=tv"
          }
        ],
        "example": "/entertainment/vidlink?id=533535&type=movie"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/matches",
        "description": "All soccer matches",
        "params": [],
        "example": "/entertainment/sports/matches"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/live",
        "description": "Live (in-progress) soccer matches",
        "params": [],
        "example": "/entertainment/sports/live"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/upcoming",
        "description": "Upcoming/fixture soccer matches",
        "params": [],
        "example": "/entertainment/sports/upcoming"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/streams",
        "description": "Matches that have available streams",
        "params": [],
        "example": "/entertainment/sports/streams"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/match",
        "description": "Single match detail",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "match id"
          }
        ],
        "example": "/entertainment/sports/match?id=22480681885"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/stream",
        "description": "Resolve a stream URL",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "stream url to resolve"
          }
        ],
        "example": "/entertainment/sports/stream?url=..."
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/standings",
        "description": "League standings",
        "params": [
          {
            "name": "league",
            "required": true,
            "desc": "league id"
          },
          {
            "name": "season",
            "required": false,
            "desc": "season year"
          }
        ],
        "example": "/entertainment/sports/standings?league=1&season=2026"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/topscorers",
        "description": "League top scorers",
        "params": [
          {
            "name": "league",
            "required": true,
            "desc": "league id"
          },
          {
            "name": "season",
            "required": false,
            "desc": "season year"
          }
        ],
        "example": "/entertainment/sports/topscorers?league=1&season=2026"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/sports/topassists",
        "description": "League top assists",
        "params": [
          {
            "name": "league",
            "required": true,
            "desc": "league id"
          },
          {
            "name": "season",
            "required": false,
            "desc": "season year"
          }
        ],
        "example": "/entertainment/sports/topassists?league=1&season=2026"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/crunchyroll/search",
        "description": "Search the real Crunchyroll catalog (anime/series/movies) — same API as the official app.",
        "params": [
          {
            "name": "q",
            "required": true,
            "desc": "search text"
          },
          {
            "name": "n",
            "required": false,
            "desc": "max results (default 10)"
          }
        ],
        "example": "/entertainment/movies/crunchyroll/search?q=one+piece"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/crunchyroll/series",
        "description": "Crunchyroll series detail by id (e.g. GRMG8ZQZR) — title, description, metadata.",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "series id from /search or /popular"
          }
        ],
        "example": "/entertainment/movies/crunchyroll/series?id=GRMG8ZQZR"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/crunchyroll/seasons",
        "description": "Crunchyroll seasons of a series (ordered).",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "series id"
          }
        ],
        "example": "/entertainment/movies/crunchyroll/seasons?id=GRMG8ZQZR"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/crunchyroll/episodes",
        "description": "Crunchyroll episodes of a season (numbered, with free/premium status).",
        "params": [
          {
            "name": "season",
            "required": true,
            "desc": "season id from /seasons"
          }
        ],
        "example": "/entertainment/movies/crunchyroll/episodes?season=GY3VWX3MR"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/crunchyroll/watch",
        "description": "Crunchyroll playback: HLS stream URLs for an episode. Anonymous session streams free-with-ads content; premium episodes need your own token= (etp_rt cookie from crunchyroll.com — same flow as the official app).",
        "params": [
          {
            "name": "episode",
            "required": true,
            "desc": "episode id from /episodes"
          },
          {
            "name": "token",
            "required": false,
            "desc": "your etp_rt cookie (premium accounts) for premium-only episodes"
          }
        ],
        "example": "/entertainment/movies/crunchyroll/watch?episode=GR3VWXP96"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/search",
        "description": "Search movies & TV shows via TMDB (multi search)",
        "params": [
          {
            "name": "q",
            "required": true
          },
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/search?q=fight club"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/search/:query",
        "description": "Search movies by title via TMDB",
        "params": [
          {
            "name": "query",
            "required": true
          },
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/search/fight%20club"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/search-tv",
        "description": "Search TV series only (TMDB search filtered to type=tv)",
        "params": [
          {
            "name": "q",
            "required": true
          },
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/search-tv?q=breaking bad"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/trending",
        "description": "Trending movies or TV shows (day/week)",
        "params": [
          {
            "name": "type",
            "required": false,
            "desc": "movie | tv | all"
          },
          {
            "name": "window",
            "required": false,
            "desc": "day | week"
          },
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/trending?type=movie"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/popular",
        "description": "Popular movies from TMDB",
        "params": [
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/popular?page=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/top-rated",
        "description": "Top rated movies from TMDB",
        "params": [
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/top-rated?page=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/now-playing",
        "description": "Movies currently playing in theaters",
        "params": [
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/now-playing?page=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/upcoming",
        "description": "Upcoming movies from TMDB",
        "params": [
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/entertainment/movies/upcoming?page=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/similar/:id",
        "description": "Movies similar to a given movie",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "TMDB movie id"
          }
        ],
        "example": "/entertainment/movies/similar/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/credits/:id",
        "description": "Cast and crew for a movie",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "TMDB movie id"
          }
        ],
        "example": "/entertainment/movies/credits/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/reviews/:id",
        "description": "Reviews for a movie",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "TMDB movie id"
          }
        ],
        "example": "/entertainment/movies/reviews/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/genres",
        "description": "List all movie genres from TMDB",
        "params": [],
        "example": "/entertainment/movies/genres"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/details/:type/:id",
        "description": "Full details for a movie or TV show (cast, videos, similar)",
        "params": [
          {
            "name": "type",
            "required": true,
            "desc": "movie | tv"
          },
          {
            "name": "id",
            "required": true,
            "desc": "TMDB id"
          }
        ],
        "example": "/entertainment/movies/details/movie/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/season/:id/:season",
        "description": "Episode list for a TV season",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "season",
            "required": true
          }
        ],
        "example": "/entertainment/movies/season/1396/1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/streams/movie/:id",
        "description": "Resolve playable stream embed links for a movie (RiveStream provider)",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "TMDB id"
          },
          {
            "name": "provider",
            "required": false,
            "desc": "self | prime"
          }
        ],
        "example": "/entertainment/movies/streams/movie/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/streams/tv/:id",
        "description": "Resolve playable stream embed links for a TV episode",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "season",
            "required": true
          },
          {
            "name": "episode",
            "required": true
          },
          {
            "name": "provider",
            "required": false,
            "desc": "self | prime"
          }
        ],
        "example": "/entertainment/movies/streams/tv/1396?season=1&episode=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/torrents/movie/:id",
        "description": "Torrent downloads for a movie (Scrapling keeper, YTS direct)",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "provider",
            "required": false,
            "desc": "yts | tpb (tpb = TPB fallback when YTS misses)"
          }
        ],
        "example": "/entertainment/movies/torrents/movie/550"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/torrents/tv/:id",
        "description": "Torrent downloads for a TV episode (Scrapling keeper via tpb)",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "season",
            "required": true
          },
          {
            "name": "episode",
            "required": true
          },
          {
            "name": "provider",
            "required": false,
            "desc": "tpb"
          }
        ],
        "example": "/entertainment/movies/torrents/tv/1396?season=1&episode=1"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/translated",
        "description": "VJStream catalog — VJ-narrated translated movies and series",
        "params": [
          {
            "name": "type",
            "required": false,
            "desc": "movies | series (default both)"
          },
          {
            "name": "limit",
            "required": false,
            "desc": "max items (default 30, set 0 for all)"
          },
          {
            "name": "sort",
            "required": false,
            "desc": "views | newest | title"
          }
        ],
        "example": "/entertainment/movies/translated?type=movies&limit=10&sort=views"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/translated/search",
        "description": "Search translated movies and series by title or description",
        "params": [
          {
            "name": "q",
            "required": true,
            "desc": "search query (title or about text)"
          },
          {
            "name": "limit",
            "required": false,
            "desc": "max results (default 25)"
          }
        ],
        "example": "/entertainment/movies/translated/search?q=spiderman"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/translated/play",
        "description": "Mint a 2h-signed playable MP4 URL for a translated movie",
        "params": [
          {
            "name": "title",
            "required": true,
            "desc": "movie title (partial match ok)"
          }
        ],
        "example": "/entertainment/movies/translated/play?title=If I Stay"
      },
      {
        "category": "Entertainment",
        "method": "GET",
        "path": "/entertainment/movies/translated/episode",
        "description": "List a translated series episodes, or stream one (add ep=N)",
        "params": [
          {
            "name": "title",
            "required": true,
            "desc": "series title (partial match ok)"
          },
          {
            "name": "ep",
            "required": false,
            "desc": "episode number to stream (omit to list)"
          }
        ],
        "example": "/entertainment/movies/translated/episode?title=Citadel&ep=1"
      }
    ],
    "Finance": [
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/crypto",
        "description": "Crypto prices from CoinGecko",
        "params": [
          {
            "name": "coins",
            "required": false,
            "desc": "comma-separated coin IDs (default: bitcoin,ethereum)"
          }
        ],
        "example": "/finance/crypto?coins=bitcoin,ethereum,solana"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/crypto/top",
        "description": "Top cryptocurrencies by market cap",
        "params": [
          {
            "name": "limit",
            "required": false,
            "desc": "number of coins (default 10, max 50)"
          }
        ],
        "example": "/finance/crypto/top?limit=5"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/crypto/convert",
        "description": "Convert crypto to fiat",
        "params": [
          {
            "name": "from",
            "required": true
          },
          {
            "name": "to",
            "required": false,
            "desc": "fiat currency (default: usd)"
          },
          {
            "name": "amount",
            "required": true
          }
        ],
        "example": "/finance/crypto/convert?from=bitcoin&amount=1&to=usd"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/crypto/:coin",
        "description": "Crypto price by coin name (bitcoin, ethereum, etc.)",
        "params": [
          {
            "name": "coin",
            "required": true,
            "desc": "coin ID (e.g. bitcoin, ethereum, solana)"
          }
        ],
        "example": "/finance/crypto/bitcoin"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/gold",
        "description": "Gold price (XAU/USD)",
        "params": [],
        "example": "/finance/gold"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/forex/:base/:target",
        "description": "Exchange rate between two currencies",
        "params": [
          {
            "name": "base",
            "required": true,
            "desc": "base currency code (e.g. USD)"
          },
          {
            "name": "target",
            "required": true,
            "desc": "target currency code (e.g. EUR)"
          }
        ],
        "example": "/finance/forex/USD/EUR"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/stock/:symbol",
        "description": "Stock price from Yahoo Finance",
        "params": [
          {
            "name": "symbol",
            "required": true,
            "desc": "stock ticker (e.g. AAPL, TSLA, MSFT)"
          }
        ],
        "example": "/finance/stock/AAPL"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/market",
        "description": "Global market overview (indices, commodities, top crypto)",
        "params": [],
        "example": "/finance/market"
      },
      {
        "category": "Finance",
        "method": "GET",
        "path": "/finance/currency",
        "description": "Live currency rates from ECB",
        "params": [
          {
            "name": "base",
            "required": false
          },
          {
            "name": "to",
            "required": false
          }
        ],
        "example": "/finance/currency?base=USD&to=EUR,GBP"
      }
    ],
    "Fun": [
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/joke",
        "description": "Random clean dad joke (icanhazdadjoke)",
        "params": [],
        "example": "/fun/joke"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/advice",
        "description": "Random advice",
        "params": [],
        "example": "/fun/advice"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/fact",
        "description": "Random tech fact",
        "params": [],
        "example": "/fun/fact"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/truth-or-dare",
        "description": "Truth or dare",
        "params": [
          {
            "name": "type",
            "required": false,
            "desc": "truth | dare"
          }
        ],
        "example": "/fun/truth-or-dare?type=truth"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/zodiac",
        "description": "Zodiac sign info by birth date",
        "params": [
          {
            "name": "month",
            "required": true
          },
          {
            "name": "day",
            "required": true
          }
        ],
        "example": "/fun/zodiac?month=3&day=15"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/zodiac/all",
        "description": "List all 12 zodiac signs with traits",
        "params": [],
        "example": "/fun/zodiac/all"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/fortune",
        "description": "Random fortune cookie message",
        "params": [],
        "example": "/fun/fortune"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/pickup",
        "description": "Random pickup line(s)",
        "params": [
          {
            "name": "count",
            "required": false,
            "desc": "number of lines (default 1, max 10)"
          }
        ],
        "example": "/fun/pickup?count=3"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/urban",
        "description": "Random urban slang entry",
        "params": [
          {
            "name": "word",
            "required": false,
            "desc": "specific word to look up (or random)"
          }
        ],
        "example": "/fun/urban?word=slay"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/urban/all",
        "description": "All slang entries",
        "params": [],
        "example": "/fun/urban/all"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/funfact",
        "description": "Random general fun fact (non-tech)",
        "params": [
          {
            "name": "count",
            "required": false,
            "desc": "number (default 1, max 10)"
          }
        ],
        "example": "/fun/funfact?count=3"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/dream",
        "description": "Dream interpretation by keyword",
        "params": [
          {
            "name": "keyword",
            "required": true,
            "desc": "dream symbol (flying, water, teeth, death, snake, fire, etc)"
          }
        ],
        "example": "/fun/dream?keyword=flying"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/weton",
        "description": "Javanese weton (birth day) calculation",
        "params": [
          {
            "name": "day",
            "required": true,
            "desc": "birth day name (monday-sunday)"
          },
          {
            "name": "date",
            "required": true,
            "desc": "birth date (day of month)"
          }
        ],
        "example": "/fun/weton?day=monday&date=15"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/gender",
        "description": "Guess gender from name",
        "params": [
          {
            "name": "name",
            "required": true
          }
        ],
        "example": "/fun/gender?name=alexander"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/age",
        "description": "Guess age from name",
        "params": [
          {
            "name": "name",
            "required": true
          }
        ],
        "example": "/fun/age?name=james"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/nationality",
        "description": "Guess nationality from name",
        "params": [
          {
            "name": "name",
            "required": true
          }
        ],
        "example": "/fun/nationality?name=muhammad"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/trivia",
        "description": "Random trivia question (Open Trivia DB)",
        "params": [
          {
            "name": "category",
            "required": false,
            "desc": "9-32"
          },
          {
            "name": "difficulty",
            "required": false,
            "desc": "easy | medium | hard"
          }
        ],
        "example": "/fun/trivia?category=9&difficulty=easy"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/chuck",
        "description": "Random Chuck Norris joke",
        "params": [],
        "example": "/fun/chuck"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/recipe",
        "description": "Search recipes (TheMealDB, free)",
        "params": [
          {
            "name": "q",
            "required": true,
            "desc": "ingredient or dish name"
          }
        ],
        "example": "/fun/recipe?q=chicken"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/recipe/random",
        "description": "Random recipe",
        "params": [],
        "example": "/fun/recipe/random"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/activity",
        "description": "Random activity suggestion",
        "params": [
          {
            "name": "type",
            "required": false,
            "desc": "education, recreation, social, diy, charity, cooking, relaxation, music, busywork"
          }
        ],
        "example": "/fun/activity?type=cooking"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/memes/templates",
        "description": "List all meme templates (memegen.link, 211+)",
        "params": [
          {
            "name": "q",
            "required": false,
            "desc": "search template name"
          }
        ],
        "example": "/fun/memes/templates?q=drake"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/memes/template",
        "description": "Get meme template details",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "template ID"
          }
        ],
        "example": "/fun/memes/template?id=drake"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/memes/generate",
        "description": "Generate meme image URL",
        "params": [
          {
            "name": "template",
            "required": true,
            "desc": "template ID (e.g. drake, buzz, change-my-mind)"
          },
          {
            "name": "text",
            "required": true,
            "desc": "text lines separated by | (pipe)"
          },
          {
            "name": "style",
            "required": false,
            "desc": "style variant"
          },
          {
            "name": "width",
            "required": false,
            "desc": "image width (default 500)"
          },
          {
            "name": "height",
            "required": false,
            "desc": "image height (default 500)"
          }
        ],
        "example": "/fun/memes/generate?template=drake&text=Using APIs|Writing scrapers"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/memes/random",
        "description": "Generate meme with random template + custom text",
        "params": [
          {
            "name": "text",
            "required": true,
            "desc": "text lines separated by | (pipe)"
          }
        ],
        "example": "/fun/memes/random?text=When the code works|But you don't know why"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/memes/blank",
        "description": "Get blank meme template image",
        "params": [
          {
            "name": "template",
            "required": true,
            "desc": "template ID"
          }
        ],
        "example": "/fun/memes/blank?template=drake"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/jokes",
        "description": "Random joke",
        "params": [],
        "example": "/fun/jokes"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/quotes",
        "description": "Random quote",
        "params": [],
        "example": "/fun/quotes"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/pickuplines",
        "description": "Random pick-up line",
        "params": [],
        "example": "/fun/pickuplines"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/motivation",
        "description": "Random motivation",
        "params": [],
        "example": "/fun/motivation"
      },
      {
        "category": "Fun",
        "method": "GET",
        "path": "/fun/truth",
        "description": "Random truth/dare prompt",
        "params": [],
        "example": "/fun/truth"
      }
    ],
    "Games": [
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/trivia",
        "description": "Trivia question(s) with choices + marked correct answer (Open Trivia DB)",
        "params": [
          {
            "name": "amount",
            "required": false
          },
          {
            "name": "category",
            "required": false
          },
          {
            "name": "difficulty",
            "required": false
          },
          {
            "name": "type",
            "required": false
          }
        ],
        "example": "/games/trivia?amount=3&category=9&difficulty=easy&type=multiple"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/riddle",
        "description": "Random riddle with hidden-until-needed answer (riddles-api)",
        "params": [],
        "example": "/games/riddle"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/wyr",
        "description": "Would-you-rather dilemma (two options to choose from)",
        "params": [],
        "example": "/games/wyr"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/nhie",
        "description": "\"Never have I ever\" statement",
        "params": [],
        "example": "/games/nhie"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/chess-puzzle",
        "description": "Chess puzzle from Lichess (FEN + solution moves + themes)",
        "params": [
          {
            "name": "source",
            "required": false
          }
        ],
        "example": "/games/chess-puzzle?source=random"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/emoji-riddle",
        "description": "Emoji puzzle: guess the movie/show/concept from emoji sequence",
        "params": [
          {
            "name": "reveal",
            "required": false
          }
        ],
        "example": "/games/emoji-riddle"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/asahotak",
        "description": "Asah otak (IQ quiz, Indonesian)",
        "params": [],
        "example": "/games/asahotak"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/susunkata",
        "description": "Susun kata (arrange-the-word, Indonesian)",
        "params": [],
        "example": "/games/susunkata"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/tekateki",
        "description": "Teka-teki (riddles, Indonesian)",
        "params": [],
        "example": "/games/tekateki"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/family100",
        "description": "Family 100 survey question with multiple accepted answers (Indonesian)",
        "params": [],
        "example": "/games/family100"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/wordle/new",
        "description": "Start a Wordle round — returns session id, 6 attempts",
        "params": [],
        "example": "/games/wordle/new"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/wordle/guess",
        "description": "Submit a Wordle guess against your session",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "word",
            "required": true
          },
          {
            "name": "giveup",
            "required": false
          }
        ],
        "example": "/games/wordle/guess?id=<uuid>&word=crane"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/hangman/new",
        "description": "Start a Hangman round — masked word + category, 6 wrong guesses allowed",
        "params": [
          {
            "name": "category",
            "required": false
          }
        ],
        "example": "/games/hangman/new"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/hangman/guess",
        "description": "Guess a letter in your Hangman session",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "letter",
            "required": true
          },
          {
            "name": "giveup",
            "required": false
          }
        ],
        "example": "/games/hangman/guess?id=<uuid>&letter=e"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/akinator/start",
        "description": "Start an Akinator-style guessing session (character mind-reader). Needs outbound access to akinator.com.",
        "params": [
          {
            "name": "region",
            "required": false
          }
        ],
        "example": "/games/akinator/start?region=en"
      },
      {
        "category": "Games",
        "method": "GET",
        "path": "/games/akinator/answer",
        "description": "Answer the current akinator question: ans=0 Yes, 1 No, 2 Don't know, 3 Probably, 4 Probably not, back=undo, end=quit",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "ans",
            "required": true
          }
        ],
        "example": "/games/akinator/answer?id=<uuid>&ans=0"
      }
    ],
    "ImageEffects": [
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/effects/list",
        "description": "Available text effects",
        "params": [],
        "example": "/effects/list"
      },
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/effects/text",
        "description": "Render stylized text effect image",
        "params": [
          {
            "name": "effect",
            "required": true,
            "desc": "see /effects/list"
          },
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/effects/text?effect=neon-light&text=VYLUX"
      },
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/img/upscale",
        "description": "Upscale an image (scale=2|4)",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "scale",
            "required": false
          }
        ],
        "example": "/img/upscale?url=https://example.com&scale=2"
      },
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/img/removebg",
        "description": "Remove image background",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/img/removebg?url=https://example.com"
      },
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/img/photofunia",
        "description": "Apply PhotoFunia effect to image",
        "params": [
          {
            "name": "effect",
            "required": true
          },
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/img/photofunia?effect=hologram-3d&url=https://example.com"
      },
      {
        "category": "ImageEffects",
        "method": "GET",
        "path": "/img/ephoto",
        "description": "Ephoto 360 image effect",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/img/ephoto?url=https://example.com&text=hello"
      }
    ],
    "News": [
      {
        "category": "News",
        "method": "GET",
        "path": "/news/latest",
        "description": "Latest headlines from a source (bbc|aljazeera|npr|techcrunch|theverge)",
        "params": [
          {
            "name": "source",
            "required": false
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/news/latest?source=bbc&limit=5"
      },
      {
        "category": "News",
        "method": "GET",
        "path": "/news/hackernews",
        "description": "Hacker News top stories with links and points",
        "params": [
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/news/hackernews?limit=10"
      }
    ],
    "Pokemon": [
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/:nameOrId",
        "description": "Get Pokemon details by name or ID",
        "params": [],
        "example": "/pokemon/pikachu"
      },
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/random",
        "description": "Get a random Pokemon",
        "params": [],
        "example": "/pokemon/random"
      },
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/type/list",
        "description": "List all Pokemon types",
        "params": [],
        "example": "/pokemon/type/list"
      },
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/type/:type",
        "description": "Get all Pokemon of a given type",
        "params": [],
        "example": "/pokemon/type/fire"
      },
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/evolution/:id",
        "description": "Get evolution chain by chain ID",
        "params": [],
        "example": "/pokemon/evolution/1"
      },
      {
        "category": "Pokemon",
        "method": "GET",
        "path": "/pokemon/search/:query",
        "description": "Search Pokemon by partial name match",
        "params": [],
        "example": "/pokemon/search/pika"
      }
    ],
    "Religion": [
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/surah",
        "description": "List all 114 surahs",
        "params": [],
        "example": "/quran/surah"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/surah/:number",
        "description": "Get full surah by number (1-114)",
        "params": [
          {
            "name": "number",
            "required": true
          },
          {
            "name": "edition",
            "required": false
          }
        ],
        "example": "/quran/surah/1?edition=en.asad"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/ayah/random",
        "description": "Random ayah",
        "params": [
          {
            "name": "edition",
            "required": false
          }
        ],
        "example": "/quran/ayah/random?edition=en.asad"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/ayah/:reference",
        "description": "Get single ayah by reference (e.g. 2:255 or ayah number)",
        "params": [
          {
            "name": "reference",
            "required": true
          },
          {
            "name": "edition",
            "required": false
          }
        ],
        "example": "/quran/ayah/2:255?edition=en.asad"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/search/:keyword",
        "description": "Search Quran text",
        "params": [
          {
            "name": "keyword",
            "required": true
          },
          {
            "name": "surah",
            "required": false
          },
          {
            "name": "edition",
            "required": false
          }
        ],
        "example": "/quran/search/mercy?surah=value&edition=en.asad"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/quran/juz/:number",
        "description": "Get juz by number (1-30)",
        "params": [
          {
            "name": "number",
            "required": true
          },
          {
            "name": "edition",
            "required": false
          }
        ],
        "example": "/quran/juz/1?edition=en.asad"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/books",
        "description": "List all 66 books of the Bible (Old + New Testament)",
        "params": [],
        "example": "/bible/books"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/verse/:reference",
        "description": "Get Bible verse(s) by reference (e.g. john+3:16, genesis+1, or use book/chapter/verse params)",
        "params": [
          {
            "name": "reference",
            "required": false,
            "desc": "e.g. john+3:16 or genesis+1 (whole chapter)"
          },
          {
            "name": "book",
            "required": false,
            "desc": "book name when using chapter/verse params"
          },
          {
            "name": "chapter",
            "required": false,
            "desc": "chapter number"
          },
          {
            "name": "verse",
            "required": false,
            "desc": "verse number (omitted = whole chapter)"
          },
          {
            "name": "translation",
            "required": false,
            "desc": "e.g. web, kjv, nkjv"
          }
        ],
        "example": "/bible/verse/john+3:16"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/chapter/:book/:number",
        "description": "Get a full Bible chapter (e.g. /bible/chapter/John/3)",
        "params": [
          {
            "name": "book",
            "required": true
          },
          {
            "name": "number",
            "required": true
          },
          {
            "name": "translation",
            "required": false
          }
        ],
        "example": "/bible/chapter/John/3"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/search/:keyword",
        "description": "Search the Bible (World English Bible full-text)",
        "params": [
          {
            "name": "keyword",
            "required": true
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/bible/search/love"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/random",
        "description": "Random Bible verse",
        "params": [
          {
            "name": "translation",
            "required": false
          }
        ],
        "example": "/bible/random?translation=kjv"
      },
      {
        "category": "Religion",
        "method": "GET",
        "path": "/bible/translations",
        "description": "List available Bible translations",
        "params": [],
        "example": "/bible/translations"
      }
    ],
    "Search": [
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/youtube",
        "description": "YouTube search",
        "params": [
          {
            "name": "q",
            "required": true
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/search/youtube?q=hello&limit=10"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/wikipedia",
        "description": "Wikipedia search (alias)",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/wikipedia?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/github",
        "description": "GitHub repository search",
        "params": [
          {
            "name": "q",
            "required": true
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/search/github?q=tiktok+downloader+language:go"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/apod",
        "description": "NASA Astronomy Picture of the Day",
        "params": [
          {
            "name": "date",
            "required": false,
            "desc": "YYYY-MM-DD (default: today)"
          }
        ],
        "example": "/search/apod?date=2024-07-20"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/dictionary",
        "description": "English word definition",
        "params": [
          {
            "name": "word",
            "required": true
          }
        ],
        "example": "/search/dictionary?word=serendipity"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/thesaurus",
        "description": "Word synonyms and antonyms",
        "params": [
          {
            "name": "word",
            "required": true
          }
        ],
        "example": "/search/thesaurus?word=happy"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/holiday",
        "description": "Check if a date is a US holiday",
        "params": [
          {
            "name": "date",
            "required": true,
            "desc": "YYYY-MM-DD"
          }
        ],
        "example": "/search/holiday?date=2026-12-25"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/google",
        "description": "Google web search",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/google?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/lyrics",
        "description": "Lyrics search",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/lyrics?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/lyrics/full",
        "description": "Full lyrics by artist/title",
        "params": [
          {
            "name": "artist",
            "required": false
          },
          {
            "name": "title",
            "required": false
          },
          {
            "name": "q",
            "required": false
          }
        ],
        "example": "/search/lyrics/full?artist=ed sheeran&title=hello&q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/spotify",
        "description": "Spotify search",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/spotify?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/npm",
        "description": "npm package search",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/npm?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/wiki",
        "description": "Wikipedia search",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/wiki?q=hello"
      },
      {
        "category": "Search",
        "method": "GET",
        "path": "/search/weather",
        "description": "Weather by location",
        "params": [
          {
            "name": "q",
            "required": true
          }
        ],
        "example": "/search/weather?q=hello"
      }
    ],
    "Security": [
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/subdomain/:domain",
        "description": "Subdomain enumeration via crt.sh",
        "params": [
          {
            "name": "domain",
            "required": true
          }
        ],
        "example": "/security/subdomain/google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/portscan/:host",
        "description": "Port scan common ports",
        "params": [
          {
            "name": "host",
            "required": true
          }
        ],
        "example": "/security/portscan/google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/reverseip/:ip",
        "description": "Reverse IP lookup via HackerTarget",
        "params": [
          {
            "name": "ip",
            "required": true
          }
        ],
        "example": "/security/reverseip/8.8.8.8"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/cms/:url",
        "description": "CMS detection via headers, paths, and body patterns",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/security/cms/https://example.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/headers/:url",
        "description": "Security headers analysis and scoring",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/security/headers/https://example.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/asn/:ip",
        "description": "ASN lookup via HackerTarget",
        "params": [
          {
            "name": "ip",
            "required": true
          }
        ],
        "example": "/security/asn/8.8.8.8"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/dns-lookup/:domain",
        "description": "DNS records lookup (A, AAAA, MX, NS, TXT, CNAME)",
        "params": [
          {
            "name": "domain",
            "required": true
          }
        ],
        "example": "/security/dns-lookup/google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/whois-lookup/:domain",
        "description": "WHOIS lookup via Verisign RDAP",
        "params": [
          {
            "name": "domain",
            "required": true
          }
        ],
        "example": "/security/whois-lookup/google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/ip",
        "description": "IP intelligence (defaults to caller)",
        "params": [
          {
            "name": "ip",
            "required": false
          }
        ],
        "example": "/security/ip?ip=8.8.8.8"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/whois",
        "description": "WHOIS lookup for a domain",
        "params": [
          {
            "name": "domain",
            "required": true
          }
        ],
        "example": "/security/whois?domain=google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/dns",
        "description": "DNS record lookup (A, AAAA, MX, NS, TXT, CNAME, SOA)",
        "params": [
          {
            "name": "domain",
            "required": true
          },
          {
            "name": "type",
            "required": false,
            "desc": "Record type (default: ANY)"
          }
        ],
        "example": "/security/dns?domain=google.com&type=MX"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/ssl",
        "description": "SSL/TLS certificate info for a host",
        "params": [
          {
            "name": "host",
            "required": true
          },
          {
            "name": "port",
            "required": false,
            "desc": "Port (default: 443)"
          }
        ],
        "example": "/security/ssl?host=google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/ping",
        "description": "Ping a host (ICMP or HTTP fallback)",
        "params": [
          {
            "name": "host",
            "required": true
          },
          {
            "name": "mode",
            "required": false,
            "desc": "icmp or http (default: http)"
          }
        ],
        "example": "/security/ping?host=google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/httpheaders",
        "description": "Fetch HTTP response headers + security audit",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/security/httpheaders?url=https://google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/updown",
        "description": "Check if a URL is up or down",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/security/updown?url=https://google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/urlcheck",
        "description": "URL safety heuristic check",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/security/urlcheck?url=https://google.com"
      },
      {
        "category": "Security",
        "method": "GET",
        "path": "/security/pwned",
        "description": "Check if email appeared in data breaches (HIBP k-anonymity)",
        "params": [
          {
            "name": "email",
            "required": true
          }
        ],
        "example": "/security/pwned?email=test@example.com"
      }
    ],
    "Sports": [
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/live",
        "description": "All currently live sports matches",
        "params": [
          {
            "name": "category",
            "required": false
          },
          {
            "name": "popular",
            "required": false
          }
        ],
        "example": "/sports/live"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/matches/:category",
        "description": "Matches for a sport category",
        "params": [
          {
            "name": "category",
            "required": true
          }
        ],
        "example": "/sports/matches/football"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/stream/:source/:id",
        "description": "Resolve playback info for a live match source",
        "params": [
          {
            "name": "source",
            "required": true
          },
          {
            "name": "id",
            "required": true
          }
        ],
        "example": "/sports/stream/echo/atp-wta-cincinnati-open-tn-1"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/standings",
        "description": "League standings (EPL, La Liga, Bundesliga, Serie A, Ligue 1, NBA, NFL, NHL, MLB)",
        "params": [
          {
            "name": "league",
            "required": true,
            "desc": "league code e.g. epl, nba, nfl"
          }
        ],
        "example": "/sports/standings?league=premier-league"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/scoreboard",
        "description": "Today's scores and fixtures for a league",
        "params": [
          {
            "name": "league",
            "required": true
          },
          {
            "name": "date",
            "required": false,
            "desc": "YYYYMMDD (default: today)"
          }
        ],
        "example": "/sports/scoreboard?league=nba"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/leaders",
        "description": "Top statistical leaders for a league",
        "params": [
          {
            "name": "league",
            "required": true
          }
        ],
        "example": "/sports/leaders?league=epl"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/news",
        "description": "Latest sports news for a league",
        "params": [
          {
            "name": "league",
            "required": true
          },
          {
            "name": "limit",
            "required": false,
            "desc": "max articles (default 10)"
          }
        ],
        "example": "/sports/news?league=epl&limit=5"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/team",
        "description": "Team info + recent results + upcoming fixtures",
        "params": [
          {
            "name": "league",
            "required": true
          },
          {
            "name": "team",
            "required": true,
            "desc": "team ID or name"
          }
        ],
        "example": "/sports/team?league=premier-league&team=363"
      },
      {
        "category": "Sports",
        "method": "GET",
        "path": "/sports/match",
        "description": "Detailed match info (lineups, play-by-play, stats)",
        "params": [
          {
            "name": "league",
            "required": true
          },
          {
            "name": "id",
            "required": true,
            "desc": "match/event ID"
          }
        ],
        "example": "/sports/match?league=nba&id=401772740"
      }
    ],
    "Stalk": [
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/github",
        "description": "GitHub user profile info",
        "params": [
          {
            "name": "username",
            "required": true
          }
        ],
        "example": "/stalk/github?username=octocat"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/npm",
        "description": "npm package info/stats",
        "params": [
          {
            "name": "packagename",
            "required": true
          }
        ],
        "example": "/stalk/npm?packagename=express"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/youtube",
        "description": "YouTube channel info via local yt-dlp",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "channel URL"
          }
        ],
        "example": "/stalk/youtube?url=https://www.youtube.com/@MrBeast"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/minecraft",
        "description": "Minecraft player or server info via mcsrvstat.us",
        "params": [
          {
            "name": "type",
            "required": true,
            "desc": "player or server"
          },
          {
            "name": "target",
            "required": true,
            "desc": "player name or server IP"
          }
        ],
        "example": "/stalk/minecraft?type=player&target=Notch"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/roblox",
        "description": "Roblox user profile, avatar, follower count",
        "params": [
          {
            "name": "user",
            "required": true,
            "desc": "username or userId"
          }
        ],
        "example": "/stalk/roblox?user=Roblox"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/steam",
        "description": "Steam profile info from community page",
        "params": [
          {
            "name": "id",
            "required": true,
            "desc": "vanity name or steam64 id"
          }
        ],
        "example": "/stalk/steam?id=gabelogannewell"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/telegram",
        "description": "Telegram public profile info via t.me og tags",
        "params": [
          {
            "name": "user",
            "required": true,
            "desc": "channel or username (without @)"
          }
        ],
        "example": "/stalk/telegram?user=durov"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/osu",
        "description": "osu! player profile (rank, pp, play count)",
        "params": [
          {
            "name": "user",
            "required": true,
            "desc": "username or user ID"
          }
        ],
        "example": "/stalk/osu?user=peppy"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/tiktok",
        "description": "TikTok profile info",
        "params": [
          {
            "name": "username",
            "required": true
          }
        ],
        "example": "/stalk/tiktok?username=octocat"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/instagram",
        "description": "Instagram profile info",
        "params": [
          {
            "name": "username",
            "required": true
          }
        ],
        "example": "/stalk/instagram?username=octocat"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/twitter",
        "description": "Twitter/X profile info",
        "params": [
          {
            "name": "username",
            "required": true
          }
        ],
        "example": "/stalk/twitter?username=octocat"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/tweetshot",
        "description": "Screenshot a tweet by URL. Proxy-first so it works on the panel without Chrome; falls back to Chrome CDP where available.",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "Full tweet URL"
          }
        ],
        "example": "/stalk/tweetshot?url=https://x.com/NASA/status/1234567890"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/ip",
        "description": "IP address lookup",
        "params": [
          {
            "name": "ip",
            "required": false
          }
        ],
        "example": "/stalk/ip?ip=8.8.8.8"
      },
      {
        "category": "Stalk",
        "method": "GET",
        "path": "/stalk/x",
        "description": "X/Twitter profile info (alias)",
        "params": [
          {
            "name": "username",
            "required": true
          }
        ],
        "example": "/stalk/x?username=octocat"
      }
    ],
    "TextEffects": [
      {
        "category": "TextEffects",
        "method": "GET",
        "path": "/texteffects/list",
        "description": "List text-effect templates across families (textpro/photooxy/ephoto360), searchable",
        "params": [
          {
            "name": "family",
            "required": false
          },
          {
            "name": "q",
            "required": false
          },
          {
            "name": "limit",
            "required": false
          }
        ],
        "example": "/texteffects/list?family=textpro&q=neon&limit=20"
      },
      {
        "category": "TextEffects",
        "method": "GET",
        "path": "/texteffects/generate",
        "description": "Generate a text-effect image from any cataloged template (Chrome-rendered; result hosted on /files)",
        "params": [
          {
            "name": "family",
            "required": true
          },
          {
            "name": "id",
            "required": true
          },
          {
            "name": "text",
            "required": true
          },
          {
            "name": "text2",
            "required": false
          }
        ],
        "example": "/texteffects/generate?family=ephoto360&id=797&text=Vylux"
      }
    ],
    "Tools": [
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/periodic-table",
        "description": "Periodic table element lookup",
        "params": [
          {
            "name": "element",
            "required": true,
            "desc": "name or symbol"
          }
        ],
        "example": "/tools/periodic-table?element=Hydrogen"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/phone",
        "description": "Phone specs (hosted GSMArena-derived API; in-process Chrome fallback)",
        "params": [
          {
            "name": "q",
            "required": true,
            "desc": "phone name (e.g. iPhone 16 Pro Max)"
          }
        ],
        "example": "/tools/phone?q=iPhone+16+Pro+Max"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/tempmail/create",
        "description": "Create a disposable email address (mail.tm)",
        "params": [
          {
            "name": "username",
            "required": false,
            "desc": "custom username (random if omitted)"
          },
          {
            "name": "password",
            "required": false
          }
        ],
        "example": "/tools/tempmail/create"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/tempmail/messages",
        "description": "List messages in a disposable inbox",
        "params": [
          {
            "name": "token",
            "required": true,
            "desc": "token from /tools/tempmail/create"
          },
          {
            "name": "page",
            "required": false
          }
        ],
        "example": "/tools/tempmail/messages?token=YOUR_TOKEN"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/tempmail/message/:id",
        "description": "Read a full message (body, attachments)",
        "params": [
          {
            "name": "id",
            "required": true
          },
          {
            "name": "token",
            "required": true
          }
        ],
        "example": "/tools/tempmail/message/MSG_ID?token=YOUR_TOKEN"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/ocr",
        "description": "Extract text from an image (tesseract OCR)",
        "params": [
          {
            "name": "imageUrl",
            "required": true,
            "desc": "public image URL"
          },
          {
            "name": "lang",
            "required": false,
            "desc": "tesseract language code (default: eng)"
          }
        ],
        "example": "/tools/ocr?imageUrl=https://i.imgur.com/sample.png"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/image-converter",
        "description": "Convert between image formats (ffmpeg)",
        "params": [
          {
            "name": "fileUrl",
            "required": true,
            "desc": "public image URL"
          },
          {
            "name": "from",
            "required": false,
            "desc": "source format hint (auto-detected if omitted)"
          },
          {
            "name": "to",
            "required": true,
            "desc": "jpg, png, webp, gif, bmp, tiff"
          }
        ],
        "example": "/tools/image-converter?fileUrl=https://example.com/a.webp&to=png"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/image-style",
        "description": "Apply artistic styles to an image (cartoon, comic, pixar, oil, mirror) via ffmpeg",
        "params": [
          {
            "name": "imageUrl",
            "required": true,
            "desc": "public image URL"
          },
          {
            "name": "style",
            "required": true,
            "desc": "cartoon, comic, pixar, oil, mirror"
          }
        ],
        "example": "/tools/image-style?imageUrl=https://example.com/photo.jpg&style=pixar"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/subdomain-finder",
        "description": "Enumerate subdomains via Certificate Transparency (crt.sh)",
        "params": [
          {
            "name": "domain",
            "required": true,
            "desc": "root domain (e.g. example.com)"
          }
        ],
        "example": "/tools/subdomain-finder?domain=example.com"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/mediaproxy",
        "description": "Fetch any media/file and re-serve it through the API (CORS-free, size capped)",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "target media URL"
          }
        ],
        "example": "/tools/mediaproxy?url=https://example.com/image.png"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/edge-tts",
        "description": "Microsoft Edge neural text-to-speech (500+ voices, no key)",
        "params": [
          {
            "name": "action",
            "required": false,
            "desc": "voices (list) or synthesize (default)"
          },
          {
            "name": "text",
            "required": false,
            "desc": "required when action=synthesize"
          },
          {
            "name": "voice",
            "required": false,
            "desc": "voice ShortName (default en-US-EmmaMultilingualNeural)"
          },
          {
            "name": "lang",
            "required": false,
            "desc": "voice list filter, e.g. en"
          },
          {
            "name": "gender",
            "required": false,
            "desc": "voice list filter: Male/Female"
          }
        ],
        "example": "/tools/edge-tts?action=synthesize&text=Hello&voice=en-US-AriaNeural"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/shortenurl",
        "description": "Create a short URL",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "long URL to shorten"
          },
          {
            "name": "custom_name",
            "required": false,
            "desc": "optional custom alias"
          }
        ],
        "example": "/tools/shortenurl?url=https://example.com/very/long/path"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/image-upscaler",
        "description": "AI HD image upscaler (4k, 6k, 8k)",
        "params": [
          {
            "name": "imageUrl",
            "required": true,
            "desc": "public image URL"
          },
          {
            "name": "quality",
            "required": false,
            "desc": "4k, 6k, 8k (default 4k)"
          },
          {
            "name": "faceEnhance",
            "required": false,
            "desc": "true to enhance faces"
          }
        ],
        "example": "/tools/image-upscaler?imageUrl=https://example.com/low.jpg&quality=4k"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/remini",
        "description": "Old-photo restoration (enhance faces and detail)",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "image URL"
          }
        ],
        "example": "/tools/remini?url=https://example.com/old.jpg"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/link-bypass",
        "description": "Resolve short/redirected links",
        "params": [
          {
            "name": "url",
            "required": true,
            "desc": "link to resolve"
          },
          {
            "name": "listSupported",
            "required": false,
            "desc": "true to list supported providers"
          }
        ],
        "example": "/tools/link-bypass?url=https://example.com/short"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/temp-number",
        "description": "Temporary phone numbers for OTP verification",
        "params": [
          {
            "name": "action",
            "required": true,
            "desc": "numbers, otps"
          },
          {
            "name": "limit",
            "required": false,
            "desc": "result limit"
          }
        ],
        "example": "/tools/temp-number?action=numbers&limit=5"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/sms-inbox",
        "description": "Online SMS mailbox (receive texts on a virtual number)",
        "params": [
          {
            "name": "action",
            "required": true,
            "desc": "country, create, message"
          },
          {
            "name": "country",
            "required": false,
            "desc": "country filter"
          },
          {
            "name": "number",
            "required": false,
            "desc": "phone number"
          },
          {
            "name": "page",
            "required": false,
            "desc": "page"
          },
          {
            "name": "count",
            "required": false,
            "desc": "per page"
          }
        ],
        "example": "/tools/sms-inbox?action=country"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/emailtick",
        "description": "Disposable email mailbox",
        "params": [
          {
            "name": "action",
            "required": true,
            "desc": "create, inbox, read"
          },
          {
            "name": "sessionId",
            "required": false,
            "desc": "session id from create"
          },
          {
            "name": "code",
            "required": false,
            "desc": "email code from inbox"
          }
        ],
        "example": "/tools/emailtick?action=create"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/qr",
        "description": "Generate QR code",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/qr?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/qr/url",
        "description": "Generate QR code from URL",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/qr/url?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/qr/read",
        "description": "Read/decode QR code",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/tools/qr/read?url=https://example.com"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/carbon",
        "description": "Carbon code screenshot (theme=monokai|dracula|nord|solarized|twilight|github)",
        "params": [
          {
            "name": "code",
            "required": true
          },
          {
            "name": "theme",
            "required": false
          }
        ],
        "example": "/tools/carbon?code=console.log(\"hi\")&theme=nord"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/screenshot",
        "description": "Screenshot a URL (device=desktop|phone|tablet)",
        "params": [
          {
            "name": "url",
            "required": true
          },
          {
            "name": "device",
            "required": false
          }
        ],
        "example": "/tools/screenshot?url=https://example.com&device=desktop"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/html-obfuscate",
        "description": "Obfuscate HTML",
        "params": [
          {
            "name": "html",
            "required": true
          }
        ],
        "example": "/tools/html-obfuscate?html=<b>hi</b>"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/obfuscate",
        "description": "Obfuscate JavaScript",
        "params": [
          {
            "name": "code",
            "required": true
          }
        ],
        "example": "/tools/obfuscate?code=console.log(\"hi\")"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/base64/encode",
        "description": "Encode text to base64",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/base64/encode?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/base64/decode",
        "description": "Decode base64 string",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/base64/decode?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/binary/encode",
        "description": "Encode text to binary",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/binary/encode?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/binary/decode",
        "description": "Decode binary to text",
        "params": [
          {
            "name": "text",
            "required": true
          }
        ],
        "example": "/tools/binary/decode?text=hello"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/shorten",
        "description": "Shorten a URL",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/tools/shorten?url=https://example.com"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/dns",
        "description": "DNS lookup for a domain",
        "params": [
          {
            "name": "domain",
            "required": true
          }
        ],
        "example": "/tools/dns?domain=google.com"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/headers",
        "description": "Inspect HTTP headers of a URL",
        "params": [
          {
            "name": "url",
            "required": true
          }
        ],
        "example": "/tools/headers?url=https://example.com"
      },
      {
        "category": "Tools",
        "method": "GET",
        "path": "/tools/tts",
        "description": "Text-to-speech (lang=en)",
        "params": [
          {
            "name": "text",
            "required": true
          },
          {
            "name": "lang",
            "required": false
          }
        ],
        "example": "/tools/tts?text=hello&lang=en"
      }
    ]
  }
}