{
  "openapi": "3.0.3",
  "info": {
    "title": "Theresa",
    "description": "Simple and easy to use API.",
    "version": "v1.0.0",
    "contact": {
      "name": "Kyu:英俊的"
    }
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "tags": [
    {
      "name": "Ai"
    },
    {
      "name": "Ai Image"
    },
    {
      "name": "Anime"
    },
    {
      "name": "Asupan"
    },
    {
      "name": "Audio"
    },
    {
      "name": "Bypass"
    },
    {
      "name": "Canvas"
    },
    {
      "name": "Cecan"
    },
    {
      "name": "Download"
    },
    {
      "name": "Ephoto"
    },
    {
      "name": "Game"
    },
    {
      "name": "Image"
    },
    {
      "name": "Islamic"
    },
    {
      "name": "Maker"
    },
    {
      "name": "Meme"
    },
    {
      "name": "Music"
    },
    {
      "name": "News"
    },
    {
      "name": "Payment"
    },
    {
      "name": "Premium"
    },
    {
      "name": "Primbon"
    },
    {
      "name": "Random"
    },
    {
      "name": "Search"
    },
    {
      "name": "Stalker"
    },
    {
      "name": "Tools"
    }
  ],
  "components": {
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "boolean",
            "example": false
          },
          "error": {
            "type": "string",
            "example": "Gagal memproses request"
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Request invalid",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "ServerError": {
        "description": "Gagal memproses request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/api/ai/alya": {
      "get": {
        "summary": "Alya AI",
        "description": "Ngobrol sama Alya, teman virtual ceria 19 tahun. Persona udah ke-embed otomatis, tinggal ketik aja",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Haii Alya, lagi ngapain?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/blackbox": {
      "get": {
        "summary": "Blackbox AI",
        "description": "Chat dengan Blackbox AI, fokus buat pertanyaan teknis/coding",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "buatkan fungsi sorting php"
            }
          }
        ]
      }
    },
    "/api/ai/copilot": {
      "get": {
        "summary": "Copilot Chat",
        "description": "Kirim pertanyaan ke Copilot Microsoft dan dapatkan jawaban beserta citations",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Jelaskan apa itu black hole"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "default",
              "enum": [
                "default",
                "think-deeper",
                "gpt-5"
              ]
            }
          }
        ]
      }
    },
    "/api/ai/deepai": {
      "get": {
        "summary": "DeepAI Chat",
        "description": "Tanya AI ke DeepAI dengan dukungan berbagai pilihan model",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "halo, siapa kamu?"
            }
          },
          {
            "name": "prompt",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "standard",
              "enum": [
                "standard",
                "deepseek-v3.2",
                "gemini-2.5-flash-lite",
                "gemma-4",
                "llama-3.3-70b-instruct",
                "gpt-oss-120b",
                "gpt-5-nano"
              ]
            }
          }
        ]
      }
    },
    "/api/ai/deepseek": {
      "get": {
        "summary": "DeepSeek AI",
        "description": "Chat dengan DeepSeek mode deep thinking, menampilkan proses reasoning dan jawaban akhir. Setiap request adalah percakapan baru (tidak ada history)",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "prompt",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Jelaskan teori relativitas secara sederhana"
            }
          }
        ]
      }
    },
    "/api/ai/feelbetter": {
      "get": {
        "summary": "FeelBetter AI",
        "description": "Chat AI custom prompt dengan session persistent, prompt default kawaii kalau gak diisi",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Halo kak, lagi sedih nih"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          },
          {
            "name": "prompt",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Kamu adalah asisten profesional yang tegas dan to the point"
            }
          }
        ]
      }
    },
    "/api/ai/gemini": {
      "get": {
        "summary": "Gemini AI Chat",
        "description": "Chat dengan Gemini 2.5. Isi image dengan URL foto untuk analisis gambar, kosongkan untuk chat biasa dengan web search.",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Siapa itu Alan Turing?"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "gemini-2.5-flash",
                "gemini-2.5-pro"
              ]
            }
          },
          {
            "name": "image",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "https://example.com/foto.jpg"
            }
          }
        ]
      }
    },
    "/api/ai/jokowi": {
      "get": {
        "summary": "Pak Jokowi AI",
        "description": "Ngobrol sama Pak Jokowi, gaya bicara khas merakyat penuh filosofi Jawa. Session persistent otomatis",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Pak, gimana kabar Solo?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/kobo": {
      "get": {
        "summary": "Kobo Kanaeru AI",
        "description": "Ngobrol sama Kobo Kanaeru, VTuber Hololive Indonesia gen 3 yang chaos dan lovable. Session persistent otomatis",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kobo lagi ngapain?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/prabowo": {
      "get": {
        "summary": "Pak Prabowo AI",
        "description": "Ngobrol sama Pak Prabowo, gaya bicara tegas dan penuh semangat nasionalis. Session persistent otomatis",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Pak, gimana soal ketahanan pangan?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/prompt-generator": {
      "get": {
        "summary": "AI Prompt Generator",
        "description": "Generate prompt AI (English & Indonesia) dari deskripsi singkat",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "king biologi"
            }
          }
        ]
      }
    },
    "/api/ai/sakana-ai": {
      "get": {
        "summary": "Sakana AI",
        "description": "Chat dengan Sakana AI, bisa pilih model dan mode deep thinking",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "question",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Apa itu photosynthesis?"
            }
          },
          {
            "name": "model",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "namazu",
              "enum": [
                "namazu",
                "sakana",
                "namazu-v2",
                "namazu-pro",
                "llama"
              ]
            }
          },
          {
            "name": "thinking",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "0",
                "1"
              ]
            }
          }
        ]
      }
    },
    "/api/ai/shizuku": {
      "get": {
        "summary": "Shizuku AI",
        "description": "Shizuku yang Tsundere yandere 17 tahun yang super ganas, lewd, dan posesif. Siap nemenin kamu dengan cara yang liar.",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Hai Shizuku, kangen gak sama aku?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/venice": {
      "get": {
        "summary": "Venice AI Chat",
        "description": "Mengirim pertanyaan ke model Venice AI dan mendapatkan jawaban",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Apa itu machine learning?"
            }
          }
        ]
      }
    },
    "/api/ai/waguri": {
      "get": {
        "summary": "Waguri AI",
        "description": "Ngobrol sama Kaoruko Waguri dari manga Kaoru Hana wa Rin to Saku. Session persistent otomatis",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Lagi bikin kue apa hari ini?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai/wanglin": {
      "get": {
        "summary": "Wang Lin AI",
        "description": "Ngobrol sama Wang Lin, kultivator legendaris dari novel Renegade Immortal (Xian Ni). Session persistent otomatis",
        "tags": [
          "Ai"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Siapa dirimu sebenarnya?"
            }
          },
          {
            "name": "session",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "my-session-1"
            }
          }
        ]
      }
    },
    "/api/ai-image/edit": {
      "post": {
        "summary": "AI Image Editor",
        "description": "Edit gambar pakai prompt bebas",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "prompt": {
                    "type": "string",
                    "example": "add a rainbow across the sky"
                  }
                },
                "required": [
                  "prompt"
                ]
              }
            }
          }
        }
      }
    },
    "/api/ai-image/img2prompt": {
      "post": {
        "summary": "Image to Prompt",
        "description": "Analisa gambar dari URL dan hasilkan prompt",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string"
                  },
                  "model": {
                    "type": "string",
                    "enum": [
                      "flux",
                      "general",
                      "stable_diffusion"
                    ]
                  },
                  "language": {
                    "type": "string",
                    "enum": [
                      "en",
                      "id"
                    ]
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        }
      }
    },
    "/api/ai-image/nano-banana": {
      "get": {
        "summary": "Nano Banana Text to Image",
        "description": "Generate gambar dari teks prompt pakai nanobanana.im",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "prompt",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "anime girl wearing a futuristic cyberpunk outfit, neon lights, cinematic lighting"
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2K",
              "enum": [
                "1K",
                "2K",
                "4K"
              ]
            }
          }
        ]
      }
    },
    "/api/ai-image/text2img2": {
      "get": {
        "summary": "Text to Image 2",
        "description": "Generate gambar dari teks prompt pakai freegen.app",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "prompt",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "a cute cat sitting on a moon, digital art"
            }
          },
          {
            "name": "ratio",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1:1",
              "enum": [
                "1:1",
                "4:3",
                "3:4",
                "3:2",
                "2:3",
                "16:9",
                "9:16",
                "21:9",
                "5:4",
                "4:5"
              ]
            }
          }
        ]
      }
    },
    "/api/ai-image/to3d": {
      "post": {
        "summary": "To 3D",
        "description": "Edit gambar jadi gaya Render 3D Realistis",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/toanime": {
      "post": {
        "summary": "To Anime",
        "description": "Edit gambar jadi gaya Anime Jepang",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tocyberpunk": {
      "post": {
        "summary": "To Cyberpunk",
        "description": "Edit gambar jadi gaya Cyberpunk",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/todisney": {
      "post": {
        "summary": "To Disney",
        "description": "Edit gambar jadi gaya Animasi Disney",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/toghibli": {
      "post": {
        "summary": "To Ghibli",
        "description": "Edit gambar jadi gaya Studio Ghibli",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tohitam": {
      "post": {
        "summary": "To Hitam",
        "description": "Edit gambar jadi gaya Menggelapkan Warna Kulit",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tojepang": {
      "post": {
        "summary": "To Jepang",
        "description": "Edit gambar jadi gaya Jepang Modern",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tolego": {
      "post": {
        "summary": "To Lego",
        "description": "Edit gambar jadi gaya LEGO",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tomanga": {
      "post": {
        "summary": "To Manga",
        "description": "Edit gambar jadi gaya Manga Hitam Putih",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tooil": {
      "post": {
        "summary": "To Oil",
        "description": "Edit gambar jadi gaya Lukisan Cat Minyak",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/topixar": {
      "post": {
        "summary": "To Pixar",
        "description": "Edit gambar jadi gaya 3D Pixar",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ai-image/tosketch": {
      "post": {
        "summary": "To Sketch",
        "description": "Edit gambar jadi gaya Sketsa Pensil",
        "tags": [
          "Ai Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/anime/anichin/detail": {
      "get": {
        "summary": "Anichin Detail",
        "description": "Detail lengkap sebuah seri donghua: sinopsis, poster, meta info, daftar episode, dan link download",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "tales-of-herding-gods"
            }
          }
        ]
      }
    },
    "/api/anime/anichin/episode": {
      "get": {
        "summary": "Anichin Episode",
        "description": "Detail episode donghua lengkap dengan link download dan seluruh server streaming (iframe)",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "tales-of-herding-gods"
            }
          },
          {
            "name": "episode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/anime/anichin/list": {
      "get": {
        "summary": "Anichin List",
        "description": "Daftar donghua terbaru dari Anichin: home, ongoing, atau completed",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "ongoing",
              "enum": [
                "home",
                "ongoing",
                "completed"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/anime/anichin/schedule": {
      "get": {
        "summary": "Anichin Schedule",
        "description": "Jadwal rilis episode donghua dari Anichin. Kosongkan day untuk ambil jadwal seluruh minggu (dikelompokkan per hari), atau isi day untuk ambil satu hari saja",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "day",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "wednesday",
              "enum": [
                "sunday",
                "monday",
                "tuesday",
                "wednesday",
                "thursday",
                "friday",
                "saturday"
              ]
            }
          }
        ]
      }
    },
    "/api/anime/anichin/search": {
      "get": {
        "summary": "Anichin Search",
        "description": "Cari donghua berdasarkan judul di Anichin",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "tales of herding gods"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/anime/anichin/series": {
      "get": {
        "summary": "Anichin Series",
        "description": "Daftar seri donghua dengan filter status, tipe, subtitle, dan urutan",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ongoing",
                "completed",
                "movie"
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sub",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "sub",
                "dub"
              ]
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "popular",
              "enum": [
                "popular",
                "rating",
                "title",
                "titlereverse",
                "update",
                "latest"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/anime/anilist/detail": {
      "get": {
        "summary": "AniList Detail",
        "description": "Detail lengkap anime dari AniList: judul, deskripsi (+ terjemahan ID), genre, studio, score, dan episode",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://anilist.co/anime/1/Cowboy-Bebop"
            }
          }
        ]
      }
    },
    "/api/anime/anilist/populer": {
      "get": {
        "summary": "AniList Populer",
        "description": "Daftar anime trending, popular season ini, upcoming, dan top all-time dari AniList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/anime/anilist/search": {
      "get": {
        "summary": "AniList Search",
        "description": "Cari anime berdasarkan judul di AniList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "sword art online"
            }
          }
        ]
      }
    },
    "/api/anime/mal/detail": {
      "get": {
        "summary": "MAL Anime Detail",
        "description": "Detail lengkap anime berdasarkan MAL ID",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "20"
            }
          }
        ]
      }
    },
    "/api/anime/mal/manga-detail": {
      "get": {
        "summary": "MAL Manga Detail",
        "description": "Detail lengkap manga berdasarkan MAL ID",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/anime/mal/random": {
      "get": {
        "summary": "MAL Random Anime",
        "description": "Ambil 1 anime acak dari MyAnimeList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/anime/mal/schedule": {
      "get": {
        "summary": "MAL Schedule",
        "description": "Jadwal tayang anime minggu ini dari MyAnimeList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "day",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/anime/mal/search": {
      "get": {
        "summary": "MAL Search",
        "description": "Cari anime di MyAnimeList berdasarkan judul",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Naruto"
            }
          }
        ]
      }
    },
    "/api/anime/mal/season": {
      "get": {
        "summary": "MAL Currently Airing",
        "description": "List anime yang lagi tayang musim ini dari MyAnimeList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/anime/mal/top": {
      "get": {
        "summary": "MAL Top Anime / Manga",
        "description": "Top anime atau manga dari MyAnimeList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/anime/mal/top-manga": {
      "get": {
        "summary": "MAL Top Manga",
        "description": "Ranking manga terbaik sepanjang masa dari MyAnimeList",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/anime/webtoon/detail": {
      "get": {
        "summary": "Webtoon Detail",
        "description": "Ambil detail komik Webtoon beserta daftar episode",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://m.webtoons.com/id/romance/list?title_no=9190"
            }
          }
        ]
      }
    },
    "/api/anime/webtoon/download": {
      "get": {
        "summary": "Webtoon Download",
        "description": "Ambil daftar gambar dari URL viewer episode Webtoon",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://m.webtoons.com/id/comedy/ex/episode-1/viewer?title_no=8305&episode_no=1"
            }
          }
        ]
      }
    },
    "/api/anime/webtoon/home": {
      "get": {
        "summary": "Webtoon Home",
        "description": "Ambil semua komik Webtoon Originals untuk 7 hari sekaligus (Senin-Minggu)",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/anime/webtoon/jadwal": {
      "get": {
        "summary": "Webtoon Jadwal",
        "description": "Ambil daftar komik Webtoon Originals berdasarkan hari tayang",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "hari",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "rabu",
              "enum": [
                "senin",
                "selasa",
                "rabu",
                "kamis",
                "jumat",
                "sabtu",
                "minggu"
              ]
            }
          }
        ]
      }
    },
    "/api/anime/webtoon/search": {
      "get": {
        "summary": "Webtoon Search",
        "description": "Cari komik Webtoon (Originals & Canvas) berdasarkan keyword",
        "tags": [
          "Anime"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "istri"
            }
          }
        ]
      }
    },
    "/api/asupan/bocil": {
      "get": {
        "summary": "Asupan Bocil",
        "description": "Random video asupan bocil",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/gheayubi": {
      "get": {
        "summary": "Asupan Gheayubi",
        "description": "Random video asupan gheayubi",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/kayes": {
      "get": {
        "summary": "Asupan Kayes",
        "description": "Random video asupan kayes",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/notnot": {
      "get": {
        "summary": "Asupan Notnot",
        "description": "Random video asupan notnot",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/panrika": {
      "get": {
        "summary": "Asupan Panrika",
        "description": "Random video asupan panrika",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/santuy": {
      "get": {
        "summary": "Asupan Santuy",
        "description": "Random video asupan santuy",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/tiktokgirl": {
      "get": {
        "summary": "Asupan Tiktokgirl",
        "description": "Random video asupan tiktokgirl",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/asupan/ukhty": {
      "get": {
        "summary": "Asupan Ukhty",
        "description": "Random video asupan ukhty",
        "tags": [
          "Asupan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/audio/tts": {
      "get": {
        "summary": "TTS Character Voice",
        "description": "Text-to-speech pakai suara karakter (anime, tokoh publik, dll)",
        "tags": [
          "Audio"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Hello everyone, how are you today?"
            }
          },
          {
            "name": "voice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "miku",
              "enum": [
                "miku",
                "nahida",
                "nami",
                "ana",
                "optimus_prime",
                "goku",
                "taylor_swift",
                "elon_musk",
                "mickey_mouse",
                "kendrick_lamar",
                "angela_adkinsh",
                "eminem"
              ]
            }
          }
        ]
      }
    },
    "/api/audio/tts-id": {
      "get": {
        "summary": "TTS dracin",
        "description": "Text-to-speech Bahasa Indonesia di-mix dengan backsound",
        "tags": [
          "Audio"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Halo semuanya, selamat datang!"
            }
          },
          {
            "name": "voice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "laki",
              "enum": [
                "laki",
                "perempuan"
              ]
            }
          }
        ]
      }
    },
    "/api/bypass/bypass": {
      "get": {
        "summary": "Bypass Unlock",
        "description": "Bypass berbagai link shortener (linkvertise, dll) dan dapatkan URL aslinya",
        "tags": [
          "Bypass"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://linkvertise.com/519136/resource-pack-hd?o=sharing"
            }
          }
        ]
      }
    },
    "/api/bypass/bypass2": {
      "get": {
        "summary": "Bypass Links v2",
        "description": "Bypass 40+ jenis ad-link",
        "tags": [
          "Bypass"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://linkvertise.com/123456/example"
            }
          }
        ]
      }
    },
    "/api/bypass/sfl": {
      "get": {
        "summary": "Bypass SFL",
        "description": "Bypass short link sfl.gl, dapatkan URL tujuan aslinya",
        "tags": [
          "Bypass"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://sfl.gl/ntCx0RF"
            }
          }
        ]
      }
    },
    "/api/canvas/card": {
      "post": {
        "summary": "Spotify Card",
        "description": "Buat card bergaya Spotify",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "cover": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "bg": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "title": {
                    "type": "string",
                    "example": "a little piece of heaven"
                  },
                  "artist": {
                    "type": "string",
                    "example": "Avenged sevenfold"
                  }
                },
                "required": [
                  "title"
                ]
              }
            }
          }
        }
      }
    },
    "/api/canvas/fake-call": {
      "post": {
        "summary": "Fake Call iOS",
        "description": "Buat gambar fake incoming call ala iPhone",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "profile": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "nama": {
                    "type": "string",
                    "example": "my heart ❤️"
                  },
                  "durasi": {
                    "type": "string",
                    "example": "01:00:39"
                  }
                },
                "required": [
                  "nama",
                  "durasi"
                ]
              }
            }
          }
        }
      },
      "get": {
        "summary": "Fake Call iOS",
        "description": "Buat gambar fake incoming call ala iPhone",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nama",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my heart ❤️"
            }
          },
          {
            "name": "durasi",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "01:00:39"
            }
          },
          {
            "name": "profile",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/canvas/fake-chat-tiktok": {
      "post": {
        "summary": "Fake Chat TikTok",
        "description": "Buat gambar fake chat TikTok",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "avatar": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "username": {
                    "type": "string",
                    "example": "Kyuu"
                  },
                  "text": {
                    "type": "string",
                    "example": "Halo, ini contoh chat TikTok palsu"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/canvas/fake-dana": {
      "get": {
        "summary": "Fake DANA Saldo",
        "description": "Buat gambar saldo DANA palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "saldo",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "150000"
            }
          }
        ]
      }
    },
    "/api/canvas/fake-ff": {
      "get": {
        "summary": "Fake FF Lobby",
        "description": "Buat gambar lobby Free Fire palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "kyzz"
            }
          },
          {
            "name": "lobby",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "5"
            }
          }
        ]
      }
    },
    "/api/canvas/fake-gopay": {
      "get": {
        "summary": "Fake GoPay Saldo",
        "description": "Buat gambar saldo GoPay palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "saldo",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "890000"
            }
          },
          {
            "name": "koin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "159"
            }
          },
          {
            "name": "terpakai",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "50000"
            }
          },
          {
            "name": "bulan",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Mei"
            }
          }
        ]
      }
    },
    "/api/canvas/fake-ml": {
      "get": {
        "summary": "Fake ML Card",
        "description": "Buat kartu rank Mobile Legends palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "avatar",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "https://raw.githubusercontent.com/Ditzzx-vibecoder/Assets/main/Image/artworks-gWLRE6HyPH3DgVMG-ZFFxtg-t500x500.jpg"
            }
          },
          {
            "name": "username",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Ditzzx"
            }
          },
          {
            "name": "rank",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "imo",
              "enum": [
                "epic",
                "glory",
                "gm",
                "honor",
                "imo",
                "legend",
                "mawi"
              ]
            }
          },
          {
            "name": "border",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "11",
              "enum": [
                "0",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16"
              ]
            }
          }
        ]
      }
    },
    "/api/canvas/fake-notif-wa": {
      "post": {
        "summary": "Fake Notif WhatsApp",
        "description": "Buat gambar fake notifikasi WhatsApp ala lockscreen iPhone",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "profile": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "username": {
                    "type": "string",
                    "example": "ZennzXD 💫"
                  },
                  "chat": {
                    "type": "string",
                    "example": "Haii sayangg udah makan belumm? 🥺"
                  },
                  "tanggal": {
                    "type": "string",
                    "example": "Senin, 6 Maret"
                  },
                  "jam": {
                    "type": "string",
                    "example": "6.39"
                  }
                },
                "required": [
                  "username",
                  "chat"
                ]
              }
            }
          }
        }
      },
      "get": {
        "summary": "Fake Notif WhatsApp",
        "description": "Buat gambar fake notifikasi WhatsApp ala lockscreen iPhone",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ZennzXD 💫"
            }
          },
          {
            "name": "chat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Haii sayangg udah makan belumm? 🥺"
            }
          },
          {
            "name": "tanggal",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Senin, 6 Maret"
            }
          },
          {
            "name": "jam",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "6.39"
            }
          },
          {
            "name": "profile",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/canvas/fake-ovo": {
      "get": {
        "summary": "Fake OVO Saldo",
        "description": "Buat gambar saldo OVO palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "saldo",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "5000000"
            }
          }
        ]
      }
    },
    "/api/canvas/fakeigpost": {
      "post": {
        "summary": "Fake IG Post",
        "description": "Buat fake postingan Instagram",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "profile": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "media": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "username": {
                    "type": "string"
                  }
                },
                "required": [
                  "username"
                ]
              }
            }
          }
        }
      }
    },
    "/api/canvas/fakeigprofile": {
      "post": {
        "summary": "Fake IG Profile",
        "description": "Buat screenshot fake profil Instagram",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "profile": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "username": {
                    "type": "string"
                  },
                  "bio": {
                    "type": "string"
                  },
                  "pengikut": {
                    "type": "string"
                  },
                  "mengikuti": {
                    "type": "string"
                  },
                  "postingan": {
                    "type": "string"
                  }
                },
                "required": [
                  "username"
                ]
              }
            }
          }
        }
      },
      "get": {
        "summary": "Fake IG Profile",
        "description": "Buat screenshot fake profil Instagram",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bio",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pengikut",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mengikuti",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "postingan",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "profile",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/canvas/fakenoteig": {
      "post": {
        "summary": "Fake IG Note",
        "description": "Buat fake IG note dengan teks dan avatar custom",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "avatar": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "message": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "required": [
                  "message",
                  "name"
                ]
              }
            }
          }
        }
      }
    },
    "/api/canvas/ffduo": {
      "get": {
        "summary": "Fake FF Duo",
        "description": "Buat gambar lobby duo Free Fire palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "user1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Athar"
            }
          },
          {
            "name": "user2",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Rina"
            }
          },
          {
            "name": "template",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "random",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11"
              ]
            }
          }
        ]
      }
    },
    "/api/canvas/ffgirl": {
      "get": {
        "summary": "Fake FF Girl",
        "description": "Buat gambar lobby Free Fire (female) palsu",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Athar"
            }
          },
          {
            "name": "template",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "random",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13"
              ]
            }
          }
        ]
      }
    },
    "/api/canvas/igqc": {
      "post": {
        "summary": "IG Quote Chat",
        "description": "Buat gambar quote chat ala IG DM, bisa teks aja atau teks + gambar",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "txt": {
                    "type": "string",
                    "example": "Ini tuh namanya pap dari my mbg yh 🌹"
                  },
                  "text": {
                    "type": "string"
                  },
                  "imgUrl": {
                    "type": "string"
                  },
                  "menuTimeStr": {
                    "type": "string",
                    "example": "SAB 15.28"
                  }
                },
                "required": [
                  "txt"
                ]
              }
            }
          }
        }
      },
      "get": {
        "summary": "IG Quote Chat",
        "description": "Buat gambar quote chat ala IG DM, bisa teks aja atau teks + gambar",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "txt",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Ini tuh namanya pap dari my mbg yh 🌹"
            }
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "imgUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "image",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "menuTimeStr",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "SAB 15.28"
            }
          }
        ]
      }
    },
    "/api/canvas/iqc-hitam": {
      "post": {
        "summary": "IQC Hitam",
        "description": "Buat gambar chat bubble iPhone tema hitam, bisa teks aja atau teks + gambar",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "text": {
                    "type": "string",
                    "example": "Earth without art is just \"eh\""
                  },
                  "time": {
                    "type": "string",
                    "example": "16.34"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "text"
                ]
              }
            }
          }
        }
      }
    },
    "/api/canvas/iqc-pink": {
      "get": {
        "summary": "IQC Pink",
        "description": "Buat gambar chat bubble iPhone tema pink",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/canvas/mpls": {
      "post": {
        "summary": "Mpls Generator",
        "description": "Buat twibbon dengan frame MPLS",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "url": {
                    "type": "string",
                    "example": "https://files.clugx.my.id/contoh-mpls.jpg"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/canvas/quote-nokia": {
      "get": {
        "summary": "Quote Nokia",
        "description": "Buat gambar SMS bergaya Nokia jadul",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "message",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Jangan pernah menyerah pada impianmu hanya karena prosesnya terasa lama dan melelahkan"
            }
          },
          {
            "name": "sender",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "kyzz"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/canvas/reminder": {
      "get": {
        "summary": "Reminder Quote",
        "description": "Buat gambar quote, bisa highlight kata tertentu pakai [kata]",
        "tags": [
          "Canvas"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Hidup itu hanya [satu] [kali] jadi berusahalah menjadi [orang] [yang] [baik]"
            }
          },
          {
            "name": "author",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "kyzz"
            }
          }
        ]
      }
    },
    "/api/cecan/China": {
      "get": {
        "summary": "Cecan China",
        "description": "Random cecan China image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Hijaber": {
      "get": {
        "summary": "Cecan Hijaber",
        "description": "Random cecan Hijaber image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Indonesia": {
      "get": {
        "summary": "Cecan Indonesia",
        "description": "Random cecan Indonesia image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Japan": {
      "get": {
        "summary": "Cecan Japan",
        "description": "Random cecan Japan image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Jeni": {
      "get": {
        "summary": "Cecan Jeni",
        "description": "Random cecan Jeni image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Jiso": {
      "get": {
        "summary": "Cecan Jiso",
        "description": "Random cecan Jiso image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Justinaxie": {
      "get": {
        "summary": "Cecan Justinaxie",
        "description": "Random cecan Justinaxie image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Korea": {
      "get": {
        "summary": "Cecan Korea",
        "description": "Random cecan Korea image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Malaysia": {
      "get": {
        "summary": "Cecan Malaysia",
        "description": "Random cecan Malaysia image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Rose": {
      "get": {
        "summary": "Cecan Rose",
        "description": "Random cecan Rose image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Ryujin": {
      "get": {
        "summary": "Cecan Ryujin",
        "description": "Random cecan Ryujin image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Thailand": {
      "get": {
        "summary": "Cecan Thailand",
        "description": "Random cecan Thailand image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/cecan/Vietnam": {
      "get": {
        "summary": "Cecan Vietnam",
        "description": "Random cecan Vietnam image",
        "tags": [
          "Cecan"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/download/aio": {
      "get": {
        "summary": "AIO Downloader",
        "description": "Download video/media dari berbagai platform (TikTok, IG, YouTube, Twitter, Facebook, dll)",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://vt.tiktok.com/ZSxxpjmUV/"
            }
          }
        ]
      }
    },
    "/api/download/capcut": {
      "get": {
        "summary": "CapCut Downloader",
        "description": "Ambil data dan video template CapCut berdasarkan URL",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://www.capcut.com/tv2/ZS42qbGY9/"
            }
          }
        ]
      }
    },
    "/api/download/facebook": {
      "get": {
        "summary": "Facebook Downloader",
        "description": "Download video Facebook (berbagai kualitas) dari url share/watch",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://www.facebook.com/share/r/1Be7n8L1MV/"
            }
          }
        ]
      }
    },
    "/api/download/github": {
      "get": {
        "summary": "GitHub Repo Downloader",
        "description": "Download source code repo GitHub dalam bentuk .zip (setara git clone), bisa pilih branch/tag/commit lewat ref",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "repo",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "vercel/next.js"
            }
          },
          {
            "name": "ref",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "main"
            }
          }
        ]
      }
    },
    "/api/download/instagram": {
      "get": {
        "summary": "Instagram Downloader",
        "description": "Download post/reels/carousel/story Instagram (foto & video)",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://www.instagram.com/p/DaAFragD2ID/"
            }
          }
        ]
      }
    },
    "/api/download/mediafire": {
      "get": {
        "summary": "MediaFire Downloader",
        "description": "Ambil link download langsung, nama file, dan ukuran dari url MediaFire",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://www.mediafire.com/file/xxxxxxxxxxxxx/example.zip/file"
            }
          }
        ]
      }
    },
    "/api/download/npm": {
      "get": {
        "summary": "NPM Download",
        "description": "Download tarball package dari NPM registry. Terima nama package (bisa dengan versi, misal express@4.18.2) atau url npmjs.com/package/...",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "package",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "express"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/download/pinterest": {
      "get": {
        "summary": "Pinterest Downloader",
        "description": "Ambil data dan link media dari URL Pinterest / pin.it",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/download/pinterest-v2": {
      "get": {
        "summary": "Pinterest Download V2",
        "description": "Download gambar dari url hasil /api/search/pinterest-v2 (khusus host i.pinimg.com, bukan url pin.it/pinterest.com)",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://i.pinimg.com/originals/48/fe/75/48fe755aa57956af421a3901489d6e9f.jpg"
            }
          }
        ]
      }
    },
    "/api/download/terabox": {
      "get": {
        "summary": "Terabox Downloader",
        "description": "Download & Stream video Terabox (Anti Limit)",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://1024terabox.com/s/1k2Qxwebz3yI09kubXBf2xA"
            }
          }
        ]
      }
    },
    "/api/download/tiktok": {
      "get": {
        "summary": "TikTok Downloader",
        "description": "Download video TikTok tanpa watermark",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/download/ytmp3": {
      "get": {
        "summary": "YouTube to MP3",
        "description": "Download audio MP3 dari video YouTube",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://youtu.be/NJMEtaDTVtA"
            }
          }
        ]
      }
    },
    "/api/download/ytmp4": {
      "get": {
        "summary": "YouTube to MP4",
        "description": "Download video MP4 dari video YouTube",
        "tags": [
          "Download"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://youtu.be/nNcWorl87h0"
            }
          },
          {
            "name": "quality",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "360p",
              "enum": [
                "144p",
                "240p",
                "360p",
                "480p",
                "720p",
                "1080p"
              ]
            }
          }
        ]
      }
    },
    "/api/ephoto/1917style": {
      "get": {
        "summary": "Ephoto - 1917style",
        "description": "Buat efek text style \"1917style\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/advancedglow": {
      "get": {
        "summary": "Ephoto - advancedglow",
        "description": "Buat efek text style \"advancedglow\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/amongustext": {
      "get": {
        "summary": "Ephoto - amongustext",
        "description": "Buat efek text style \"amongustext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/blackpinklogo": {
      "get": {
        "summary": "Ephoto - blackpinklogo",
        "description": "Buat efek text style \"blackpinklogo\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/blackpinkstyle": {
      "get": {
        "summary": "Ephoto - blackpinkstyle",
        "description": "Buat efek text style \"blackpinkstyle\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/cartoonstyle": {
      "get": {
        "summary": "Ephoto - cartoonstyle",
        "description": "Buat efek text style \"cartoonstyle\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/deletingtext": {
      "get": {
        "summary": "Ephoto - deletingtext",
        "description": "Buat efek text style \"deletingtext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/effectclouds": {
      "get": {
        "summary": "Ephoto - effectclouds",
        "description": "Buat efek text style \"effectclouds\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/flag3dtext": {
      "get": {
        "summary": "Ephoto - flag3dtext",
        "description": "Buat efek text style \"flag3dtext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/flagtext": {
      "get": {
        "summary": "Ephoto - flagtext",
        "description": "Buat efek text style \"flagtext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/freecreate": {
      "get": {
        "summary": "Ephoto - freecreate",
        "description": "Buat efek text style \"freecreate\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/galaxystyle": {
      "get": {
        "summary": "Ephoto - galaxystyle",
        "description": "Buat efek text style \"galaxystyle\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/galaxywallpaper": {
      "get": {
        "summary": "Ephoto - galaxywallpaper",
        "description": "Buat efek text style \"galaxywallpaper\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/glitchtext": {
      "get": {
        "summary": "Ephoto - glitchtext",
        "description": "Buat efek text style \"glitchtext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/glowingtext": {
      "get": {
        "summary": "Ephoto - glowingtext",
        "description": "Buat efek text style \"glowingtext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/gradienttext": {
      "get": {
        "summary": "Ephoto - gradienttext",
        "description": "Buat efek text style \"gradienttext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/lighteffects": {
      "get": {
        "summary": "Ephoto - lighteffects",
        "description": "Buat efek text style \"lighteffects\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/logomaker": {
      "get": {
        "summary": "Ephoto - logomaker",
        "description": "Buat efek text style \"logomaker\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/luxurygold": {
      "get": {
        "summary": "Ephoto - luxurygold",
        "description": "Buat efek text style \"luxurygold\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/makingneon": {
      "get": {
        "summary": "Ephoto - makingneon",
        "description": "Buat efek text style \"makingneon\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/multicoloredneon": {
      "get": {
        "summary": "Ephoto - multicoloredneon",
        "description": "Buat efek text style \"multicoloredneon\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/neonglitch": {
      "get": {
        "summary": "Ephoto - neonglitch",
        "description": "Buat efek text style \"neonglitch\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/papercutstyle": {
      "get": {
        "summary": "Ephoto - papercutstyle",
        "description": "Buat efek text style \"papercutstyle\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/pixelglitch": {
      "get": {
        "summary": "Ephoto - pixelglitch",
        "description": "Buat efek text style \"pixelglitch\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/rainytext": {
      "get": {
        "summary": "Ephoto - rainytext",
        "description": "Buat efek text style \"rainytext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/royaltext": {
      "get": {
        "summary": "Ephoto - royaltext",
        "description": "Buat efek text style \"royaltext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/sandsummer": {
      "get": {
        "summary": "Ephoto - sandsummer",
        "description": "Buat efek text style \"sandsummer\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/summerbeach": {
      "get": {
        "summary": "Ephoto - summerbeach",
        "description": "Buat efek text style \"summerbeach\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/typographytext": {
      "get": {
        "summary": "Ephoto - typographytext",
        "description": "Buat efek text style \"typographytext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/underwatertext": {
      "get": {
        "summary": "Ephoto - underwatertext",
        "description": "Buat efek text style \"underwatertext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/watercolortext": {
      "get": {
        "summary": "Ephoto - watercolortext",
        "description": "Buat efek text style \"watercolortext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/ephoto/writetext": {
      "get": {
        "summary": "Ephoto - writetext",
        "description": "Buat efek text style \"writetext\" menggunakan ephoto360",
        "tags": [
          "Ephoto"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyzz"
            }
          }
        ]
      }
    },
    "/api/game/asah-otak": {
      "get": {
        "summary": "Asah Otak",
        "description": "Soal asah otak acak untuk melatih daya pikir",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/cak-lontong": {
      "get": {
        "summary": "Cak Lontong",
        "description": "Tebak-tebakan plesetan ala Cak Lontong lengkap dengan deskripsi jawaban",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/game3rb/category": {
      "get": {
        "summary": "Game3rb Category",
        "description": "List game per kategori dari game3rb.com. Parameter category boleh shorthand (lihat @enum) atau raw slug kategori (misal pc-games/action)",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "action",
              "enum": [
                "action",
                "adventure",
                "rpg",
                "simulation",
                "strategy",
                "horror",
                "racing",
                "sports",
                "indie",
                "casual",
                "vr",
                "gore",
                "early_access",
                "violent",
                "nostalgia",
                "online",
                "repack",
                "updates"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/game/game3rb/detail": {
      "get": {
        "summary": "Game3rb Detail",
        "description": "Ambil detail game (info, screenshot, link download) dari slug atau url game3rb.com",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "slug",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "beamng-drive-online"
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/game/game3rb/home": {
      "get": {
        "summary": "Game3rb Home",
        "description": "Ambil daftar game PC terbaru dan daftar kategori dari game3rb.com",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/game3rb/popular": {
      "get": {
        "summary": "Game3rb Popular",
        "description": "Ambil daftar game paling populer di game3rb.com",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/game3rb/search": {
      "get": {
        "summary": "Game3rb Search",
        "description": "Cari game PC di game3rb.com berdasarkan kata kunci",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "beamng drive"
            }
          }
        ]
      }
    },
    "/api/game/lengkapi-kalimat": {
      "get": {
        "summary": "Lengkapi Kalimat",
        "description": "Soal melengkapi pantun/peribahasa yang rumpang",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/siapakah-aku": {
      "get": {
        "summary": "Siapakah Aku",
        "description": "Soal tebak profil/benda dari ciri-ciri yang diberikan",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-bendera": {
      "get": {
        "summary": "Tebak Bendera",
        "description": "Tebak nama negara dari gambar bendera",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-gambar": {
      "get": {
        "summary": "Tebak Gambar",
        "description": "Soal tebak gambar level acak lengkap dengan gambar dan deskripsi petunjuk",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-game": {
      "get": {
        "summary": "Tebak Game",
        "description": "Tebak judul game dari cover/wallpaper acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-kata": {
      "get": {
        "summary": "Tebak Kata",
        "description": "Tebak satu kata dari kumpulan kata petunjuk yang berhubungan",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-kimia": {
      "get": {
        "summary": "Tebak Kimia",
        "description": "Tebak lambang unsur kimia acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-lagu": {
      "get": {
        "summary": "Tebak Lagu",
        "description": "Tebak judul dan artis lagu dari cuplikan audio acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-lirik": {
      "get": {
        "summary": "Tebak Lirik",
        "description": "Lengkapi potongan lirik lagu yang rumpang",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-logo": {
      "get": {
        "summary": "Tebak Logo",
        "description": "Tebak brand/merek dari gambar logo acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-makanan": {
      "get": {
        "summary": "Tebak Makanan",
        "description": "Tebak nama makanan khas daerah dari gambar acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/game/tebak-tebakan": {
      "get": {
        "summary": "Tebak Tebakan",
        "description": "Tebak-tebakan humor klasik acak",
        "tags": [
          "Game"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/anime-hot": {
      "get": {
        "summary": "Anime Hot",
        "description": "Random image anime hot",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/bluearchive": {
      "get": {
        "summary": "Blue Archive",
        "description": "Random image Blue Archive",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/cosplay": {
      "get": {
        "summary": "Cosplay",
        "description": "Random image cosplay anime",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/husbu": {
      "get": {
        "summary": "Husbu",
        "description": "Random image husbu anime",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/loli": {
      "get": {
        "summary": "Loli",
        "description": "Random image Loli",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/neko": {
      "get": {
        "summary": "Neko",
        "description": "Random image Neko",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/papayang": {
      "get": {
        "summary": "Papayang",
        "description": "Random image Papayang (SFW, AI generated)",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/random": {
      "get": {
        "summary": "Random Public Image",
        "description": "Ambil gambar anime random dari waifu.pics, nekos.best, atau nekobot.xyz",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/image/shota": {
      "get": {
        "summary": "Shota",
        "description": "Random image shota anime",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/image/waifu": {
      "get": {
        "summary": "Waifu",
        "description": "Ambil gambar waifu (SFW only) secara acak dari waifu.im, jumlah bisa diatur via parameter count",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/api/image/waifu2": {
      "get": {
        "summary": "Waifu 2",
        "description": "Random image Waifu (sumber alternatif)",
        "tags": [
          "Image"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/islamic/asmaul-husna": {
      "get": {
        "summary": "Asmaul Husna",
        "description": "99 Nama Allah (Asmaul Husna) lengkap arab, latin, dan arti ID/EN. Kosongkan nomor untuk ambil semua data",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nomor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "12"
            }
          }
        ]
      }
    },
    "/api/islamic/ayat-kursi": {
      "get": {
        "summary": "Ayat Kursi",
        "description": "Teks lengkap Ayat Kursi (QS. Al-Baqarah: 255) beserta latin dan terjemahan",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/islamic/bacaan-sholat": {
      "get": {
        "summary": "Bacaan Sholat",
        "description": "Kumpulan bacaan shalat lengkap (Iftitah, Al-Fatihah, Ruku, I'tidal, Sujud, Tasyahud, Salam) beserta arab, latin, dan terjemahan",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/islamic/jadwal-sholat": {
      "get": {
        "summary": "Jadwal Sholat",
        "description": "Jadwal waktu shalat hari ini untuk seluruh kota/wilayah di Indonesia",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "wilayah",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "tangerang"
            }
          }
        ]
      }
    },
    "/api/islamic/kisah-nabi": {
      "get": {
        "summary": "Kisah Nabi",
        "description": "Kisah para Nabi dan Rasul lengkap dengan nama, tahun lahir, tempat, dan usia",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nama",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "adam"
            }
          }
        ]
      }
    },
    "/api/islamic/niat-sholat": {
      "get": {
        "summary": "Niat Sholat",
        "description": "Niat shalat fardhu 5 waktu (Subuh, Dzuhur, Ashar, Maghrib, Isha) beserta arab, latin, dan terjemahan",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "waktu",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "subuh",
              "enum": [
                "subuh",
                "dzuhur",
                "ashar",
                "maghrib",
                "isha"
              ]
            }
          }
        ]
      }
    },
    "/api/islamic/tafsir": {
      "get": {
        "summary": "Tafsir Al-Qur'an",
        "description": "Cari tafsir ayat Al-Qur'an berdasarkan topik/kata kunci dari Tafsirq.com",
        "tags": [
          "Islamic"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "sabar"
            }
          }
        ]
      }
    },
    "/api/maker/brat": {
      "get": {
        "summary": "Brat",
        "description": "Buat bratteks",
        "tags": [
          "Maker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Kyu femboy"
            }
          },
          {
            "name": "theme",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "black",
                "white",
                "green"
              ]
            }
          }
        ]
      }
    },
    "/api/maker/brat-gojo": {
      "get": {
        "summary": "Brat Gojo",
        "description": "brat gojo",
        "tags": [
          "Maker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Nah, I'd win"
            }
          }
        ]
      }
    },
    "/api/maker/brat-gojov": {
      "get": {
        "summary": "Brat Gojo Vid",
        "description": "brat gif gojo",
        "tags": [
          "Maker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Nah, I'd win"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "mp4",
                "gif"
              ]
            }
          }
        ]
      }
    },
    "/api/maker/bratvid": {
      "get": {
        "summary": "brat vid",
        "description": "buat brat gif/vid",
        "tags": [
          "Maker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "kyuu sayang efef"
            }
          },
          {
            "name": "theme",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "black",
                "white",
                "green"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "mp4",
                "gif"
              ]
            }
          }
        ]
      }
    },
    "/api/meme/beautiful-meme": {
      "post": {
        "summary": "Beautiful Meme",
        "description": "Buat meme \"beautiful\"",
        "tags": [
          "Meme"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "url": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Beautiful Meme",
        "description": "Buat meme \"beautiful\"",
        "tags": [
          "Meme"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/meme/jarvis": {
      "get": {
        "summary": "Meme Jarvis",
        "description": "Generate meme \"Jarvis, tolong...\" — teks jadi kotak putih di atas gambar template",
        "tags": [
          "Meme"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Jarvis, tolong nyalain lampu kamar"
            }
          }
        ]
      }
    },
    "/api/meme/meme-drake": {
      "get": {
        "summary": "Meme Drake",
        "description": "Generate meme Drake Hotline Bling. teks1 = teks ditolak (atas), teks2 = teks diterima (bawah)",
        "tags": [
          "Meme"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "teks1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Belajar"
            }
          },
          {
            "name": "teks2",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Rebahan"
            }
          }
        ]
      }
    },
    "/api/meme/meme-twobuttons": {
      "get": {
        "summary": "Meme Two Buttons",
        "description": "Generate meme Two Buttons. teks1 = tombol kiri, teks2 = tombol kanan, teks3 = caption bawah",
        "tags": [
          "Meme"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "teks1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Tidur"
            }
          },
          {
            "name": "teks2",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Ngoding"
            }
          },
          {
            "name": "teks3",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Gue pas deadline"
            }
          }
        ]
      }
    },
    "/api/music/apple-search": {
      "get": {
        "summary": "Apple Music Search",
        "description": "Cari lagu di Apple Music berdasarkan query",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "let it happen"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/music/spotify/album": {
      "get": {
        "summary": "Spotify Album",
        "description": "Detail album Spotify lengkap beserta daftar track. Bisa pakai ID, URL lengkap, atau Spotify URI",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://open.spotify.com/album/7z2Nuz41dkU9ruY5Qkva2L"
            }
          }
        ]
      }
    },
    "/api/music/spotify/artist": {
      "get": {
        "summary": "Spotify Artist",
        "description": "Detail artis Spotify: profil, followers, dan top tracks. Bisa pakai ID, URL lengkap, atau Spotify URI",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://open.spotify.com/artist/164Uj4eKjl6zTBKfJLFKKK"
            }
          }
        ]
      }
    },
    "/api/music/spotify/download": {
      "get": {
        "summary": "Spotify Download",
        "description": "Download lagu dari Spotify. Bisa pakai URL track, ID track, atau Spotify URI",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "https://open.spotify.com/track/23WxsmliKISYaCfam8iPPG"
            }
          }
        ]
      }
    },
    "/api/music/spotify/playlist": {
      "get": {
        "summary": "Spotify Playlist",
        "description": "Detail playlist Spotify beserta daftar lagu di dalamnya. Bisa pakai ID, URL lengkap, atau Spotify URI",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://open.spotify.com/playlist/4IfUIdWEonPys9mYs7zXna"
            }
          }
        ]
      }
    },
    "/api/music/spotify/search": {
      "get": {
        "summary": "Spotify Search",
        "description": "Cari lagu, album, artis, atau playlist di Spotify. Contoh: \"APT Rose Bruno Mars\", \"Billie Eilish\", \"Bohemian Rhapsody\"",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "APT Rose Bruno Mars"
            }
          }
        ]
      }
    },
    "/api/music/spotify/track": {
      "get": {
        "summary": "Spotify Track",
        "description": "Detail track Spotify. Bisa pakai ID, URL lengkap, atau Spotify URI",
        "tags": [
          "Music"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://open.spotify.com/track/23WxsmliKISYaCfam8iPPG"
            }
          }
        ]
      }
    },
    "/api/news/antara": {
      "get": {
        "summary": "Antara News",
        "description": "Ambil berita dari ANTARA News",
        "tags": [
          "News"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "kategori",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/news/detik": {
      "get": {
        "summary": "Detik News",
        "description": "Scraping berita terpopuler dari Detik.com",
        "tags": [
          "News"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/news/kontan": {
      "get": {
        "summary": "Kontan News",
        "description": "Scraping berita terbaru dari Kontan.co.id",
        "tags": [
          "News"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/payment/check-payment": {
      "post": {
        "summary": "Check Payment",
        "description": "Check Payment endpoint",
        "tags": [
          "Payment"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/payment/create-qris": {
      "post": {
        "summary": "Create Qris",
        "description": "Create Qris endpoint",
        "tags": [
          "Payment"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/premium/amprem": {
      "get": {
        "summary": "Alight Motion Premium Send Eceran",
        "description": "Kirim email request Alight Motion Premium",
        "tags": [
          "Premium"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "user@gmail.com"
            }
          }
        ]
      }
    },
    "/api/premium/amprem-verif": {
      "get": {
        "summary": "Alight Motion Premium Verify Magic Link",
        "description": "Verifikasi magic link Alight Motion Premium",
        "tags": [
          "Premium"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "link",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://alightcreative.com/login?..."
            }
          },
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/premium/buy-role": {
      "post": {
        "summary": "Buy Role",
        "description": "Buy Role endpoint",
        "tags": [
          "Premium"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/primbon/angkaberuntung": {
      "get": {
        "summary": "Angka Keberuntungan",
        "description": "Hitung angka keberuntungan, life path number, expression number, dan soul urge berdasarkan nama + tanggal lahir (numerologi Pythagoras)",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nama",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Wahyu Ramadhan"
            }
          },
          {
            "name": "tanggal",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1998-03-21"
            }
          }
        ]
      }
    },
    "/api/primbon/artinama": {
      "get": {
        "summary": "Arti Nama",
        "description": "Cari arti/makna sebuah nama (primbon)",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nama",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Wahyu"
            }
          }
        ]
      }
    },
    "/api/primbon/haribaik": {
      "get": {
        "summary": "Hari Baik",
        "description": "Cari hari baik berdasarkan keperluan (pernikahan, usaha, pindahrumah, perjalanan, khitan)",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "keperluan",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "pernikahan",
              "enum": [
                "pernikahan",
                "usaha",
                "pindahrumah",
                "perjalanan",
                "khitan"
              ]
            }
          },
          {
            "name": "mulai",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2025-01-01"
            }
          }
        ]
      }
    },
    "/api/primbon/kecocokan": {
      "get": {
        "summary": "Kecocokan Weton",
        "description": "Cek kecocokan pasangan berdasarkan weton (Pegat, Ratu, Jodoh, Topo, Tinari, Padu, Sujanan, Pesthi)",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "tanggal1",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1995-08-17"
            }
          },
          {
            "name": "tanggal2",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1997-12-25"
            }
          }
        ]
      }
    },
    "/api/primbon/ramalan": {
      "get": {
        "summary": "Ramalan Harian",
        "description": "Ramalan harian lengkap: cinta, rezeki, karir, kesehatan, angka & warna beruntung berdasarkan tanggal + zodiak opsional",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "tanggal",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2025-07-17"
            }
          },
          {
            "name": "zodiak",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "Scorpio",
              "enum": [
                "Aries",
                "Taurus",
                "Gemini",
                "Cancer",
                "Leo",
                "Virgo",
                "Libra",
                "Scorpio",
                "Sagittarius",
                "Capricorn",
                "Aquarius",
                "Pisces"
              ]
            }
          }
        ]
      }
    },
    "/api/primbon/ritual": {
      "get": {
        "summary": "Ritual Primbon",
        "description": "Panduan ritual primbon Jawa lengkap: bahan, langkah, pantangan. Kosongkan jenis untuk melihat daftar semua ritual.",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "jenis",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "pelarislanggar",
              "enum": [
                "pelarislanggar",
                "tolakbala",
                "pengasihan",
                "hajat",
                "mimpi",
                "rejekinaik"
              ]
            }
          }
        ]
      }
    },
    "/api/primbon/shio": {
      "get": {
        "summary": "Shio",
        "description": "Cek shio berdasarkan tahun lahir lengkap dengan sifat, rezeki, jodoh, dan yang perlu dihindari",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "tahun",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1998"
            }
          }
        ]
      }
    },
    "/api/primbon/tafsirmimpi": {
      "get": {
        "summary": "Tafsir Mimpi",
        "description": "Tafsir makna mimpi berdasarkan kata kunci (ular, air, terbang, gigi, uang, menikah, dll)",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "kata",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "ular"
            }
          }
        ]
      }
    },
    "/api/primbon/weton": {
      "get": {
        "summary": "Weton Jawa",
        "description": "Hitung weton (hari + pasaran Jawa), neptu, pancasuda, dan padewan berdasarkan tanggal lahir",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "tanggal",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2000-05-17"
            }
          }
        ]
      }
    },
    "/api/primbon/zodiak": {
      "get": {
        "summary": "Zodiak",
        "description": "Cek zodiak beserta sifat, kelemahan, planet, dan elemen berdasarkan tanggal lahir",
        "tags": [
          "Primbon"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "tanggal",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1999-07-23"
            }
          }
        ]
      }
    },
    "/api/random/andin": {
      "get": {
        "summary": "Random Andin",
        "description": "Random video  Andin",
        "tags": [
          "Random"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/random/blackpink": {
      "get": {
        "summary": "Blackpink",
        "description": "Random image Blackpink",
        "tags": [
          "Random"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/random/tobrut": {
      "get": {
        "summary": "Random Tobrut",
        "description": "Random video Tobrut",
        "tags": [
          "Random"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/search/iq-search": {
      "get": {
        "summary": "iQ Search",
        "description": "Cari drama/film/anime/variety show di iq.com (iQIYI) berdasarkan keyword",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Demon Slayer"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/api/search/lirik": {
      "get": {
        "summary": "Lyrics Search",
        "description": "Cari lirik lagu via LRCLIB",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "senorita"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/search/meme-search": {
      "get": {
        "summary": "Meme Search",
        "description": "Cari meme/gif lucu berdasarkan kata kunci",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "kucing lucu"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/api/search/npm": {
      "get": {
        "summary": "NPM Search",
        "description": "Cari package di NPM registry",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "express"
            }
          }
        ]
      }
    },
    "/api/search/pinterest-v2": {
      "get": {
        "summary": "Pinterest Search V2",
        "description": "Cari pin Pinterest berdasarkan keyword. Field `image` di tiap hasil dipakai di /api/download/pinterest-v2",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "idle rossie"
            }
          }
        ]
      }
    },
    "/api/search/prompt-search": {
      "get": {
        "summary": "Prompt Search",
        "description": "Cari prompt AI (image generation) di PromptHero berdasarkan keyword",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "star"
            }
          }
        ]
      }
    },
    "/api/search/reverse-image": {
      "get": {
        "summary": "Reverse Image Search",
        "description": "Cari semua tempat sebuah gambar muncul di internet via TinEye (domain, backlink, tanggal crawl, dimensi). Hasil FULL satu halaman (gak dipotong), pakai parameter page buat lihat halaman selanjutnya",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://images.unsplash.com/photo-1518791841217-8f162f1e1131"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/search/sekolah": {
      "get": {
        "summary": "Pencarian Data Sekolah Kemendikdasmen",
        "description": "Cari data sekolah (nama, NPSN, akreditasi, alamat) dari Kemendikdasmen",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "tempe"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "20"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/search/server-discord": {
      "get": {
        "summary": "Search Server Discord",
        "description": "Cari server Discord publik di Top.gg berdasarkan keyword",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "roblox"
            }
          }
        ]
      }
    },
    "/api/search/sticker-pack/detail": {
      "get": {
        "summary": "Sticker Pack Detail",
        "description": "Ambil detail sticker pack (list sticker + link download) dari slug atau url getstickerpack.com",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "https://getstickerpack.com/stickers/meme-video-pack"
            }
          },
          {
            "name": "slug",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/search/sticker-pack": {
      "get": {
        "summary": "Sticker Pack Search",
        "description": "Cari sticker pack WhatsApp berdasarkan keyword di getstickerpack.com",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "meme"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/search/uptodown": {
      "get": {
        "summary": "Uptodown Search",
        "description": "Cari aplikasi Android di Uptodown berdasarkan keyword",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "free fire"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "1"
            }
          }
        ]
      }
    },
    "/api/search/wa-group": {
      "get": {
        "summary": "WhatsApp Group Search",
        "description": "Cari grup WhatsApp publik dari direktori berdasarkan kata kunci",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "anime"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "10"
            }
          }
        ]
      }
    },
    "/api/search/yts": {
      "get": {
        "summary": "YouTube Search",
        "description": "Cari video YouTube berdasarkan keyword, return detail lengkap tiap video",
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "alan walker faded"
            }
          }
        ]
      }
    },
    "/api/stalker/discord": {
      "get": {
        "summary": "Discord Stalker",
        "description": "Stalk profil Discord berdasarkan User ID: username, avatar, tanggal bergabung, dan badges",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1234567890123456789"
            }
          }
        ]
      }
    },
    "/api/stalker/github": {
      "get": {
        "summary": "GitHub Stalker",
        "description": "Ambil profil user GitHub langsung dari GitHub REST API resmi",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "torvalds"
            }
          }
        ]
      }
    },
    "/api/stalker/ig": {
      "get": {
        "summary": "Instagram Stalker",
        "description": "Ambil metadata profil (followers/following/posts/avatar) & stories aktif Instagram",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "timothyronaldd"
            }
          }
        ]
      }
    },
    "/api/stalker/jkt": {
      "get": {
        "summary": "JKT48 Stalker",
        "description": "Stalk profil member JKT48 berdasarkan username/slug: nama, team, generasi, showroom id, dan stats",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "freya"
            }
          }
        ]
      }
    },
    "/api/stalker/mal-stalk": {
      "get": {
        "summary": "MAL User Stats",
        "description": "Statistik anime list milik user MyAnimeList",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Karthiga"
            }
          }
        ]
      }
    },
    "/api/stalker/ml": {
      "get": {
        "summary": "Mobile Legends Stalker",
        "description": "Cek username Mobile Legends berdasarkan ID & Server, sekalian deteksi region",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1264042367"
            }
          },
          {
            "name": "server",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "15139"
            }
          }
        ]
      }
    },
    "/api/stalker/pinterest": {
      "get": {
        "summary": "Pinterest Stalker",
        "description": "Stalk profil Pinterest berdasarkan username",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "yuliii___"
            }
          }
        ]
      }
    },
    "/api/stalker/tiktok": {
      "get": {
        "summary": "TikTok Stalker",
        "description": "Stalk profil TikTok berdasarkan username: info akun, followers, video count, dan bio",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "mrbeast"
            }
          }
        ]
      }
    },
    "/api/stalker/tiktok-repost": {
      "get": {
        "summary": "TikTok Repost Viewer",
        "description": "Lihat video yang di-repost oleh akun TikTok. Tambah param semua=true untuk ambil semua halaman",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "dimeh493&semua=true"
            }
          },
          {
            "name": "semua",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/stalker/twitter": {
      "get": {
        "summary": "Twitter Stalker",
        "description": "Stalk profil & tweets Twitter/X berdasarkan username",
        "tags": [
          "Stalker"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "elonmusk"
            }
          }
        ]
      }
    },
    "/api/tools/compare-device": {
      "get": {
        "summary": "Device Comparison",
        "description": "Bandingkan spesifikasi dua HP secara real-time dari carisinyal.com",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "hp1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "oppo reno16 f 5g"
            }
          },
          {
            "name": "hp2",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "oppo reno16 pro 5g"
            }
          }
        ]
      }
    },
    "/api/tools/ip-lookup": {
      "get": {
        "summary": "IP Lookup",
        "description": "Cek info detail sebuah IP address (lokasi, ISP, dll)",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "1.1.1.1"
            }
          }
        ]
      }
    },
    "/api/tools/nik": {
      "get": {
        "summary": "Cek NIK",
        "description": "Cek data wilayah dari Nomor Induk Kependudukan (NIK) KTP",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "nik",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "3175012345670001"
            }
          }
        ]
      }
    },
    "/api/tools/obf-lua": {
      "post": {
        "summary": "Obfuscate Lua",
        "description": "Obfuscate source code Lua pakai luaobfuscator.com, level low/medium/high",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "example": "print(\"hello world\")"
                  },
                  "level": {
                    "type": "string",
                    "example": "medium",
                    "enum": [
                      "low",
                      "medium",
                      "high"
                    ]
                  }
                },
                "required": [
                  "code"
                ]
              }
            }
          }
        }
      }
    },
    "/api/tools/qrcode": {
      "get": {
        "summary": "QR Code Generator",
        "description": "Generate QR code dari text/url/wifi/vcard/dll. Support ukuran & warna custom",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Halo guys"
            }
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fg",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bg",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/tools/record": {
      "get": {
        "summary": "Website Record",
        "description": "Rekam tampilan website jadi video dari berbagai device, support scroll capture & dark mode",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://kyzz-apis.my.id/docs"
            }
          },
          {
            "name": "device",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "desktop_fhd",
              "enum": [
                "desktop_hd",
                "desktop_fhd",
                "desktop_4k",
                "desktop_wide",
                "laptop_13",
                "laptop_15",
                "macbook_air",
                "macbook_pro",
                "ipad",
                "ipad_pro",
                "ipad_mini",
                "samsung_tab",
                "iphone_se",
                "iphone_14",
                "iphone_14_pro",
                "iphone_15_pro",
                "samsung_s24",
                "pixel_8",
                "xiaomi_14"
              ]
            }
          },
          {
            "name": "scroll",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "name": "dark_mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            }
          }
        ]
      }
    },
    "/api/tools/remove-bg": {
      "post": {
        "summary": "Remove Background",
        "description": "Hapus background dari foto secara otomatis",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "url": {
                    "type": "string",
                    "example": "https://files.clugx.my.id/contoh-ghibli.jpg"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/tools/spam-otp": {
      "get": {
        "summary": "OTP Spam",
        "description": "Mengirim OTP massal ke nomor melalui banyak provider dengan rate limit",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "6283150850721"
            }
          }
        ]
      }
    },
    "/api/tools/ssweb": {
      "get": {
        "summary": "Website Screenshot",
        "description": "Ambil screenshot sebuah website, pilih tampilan desktop/mobile/tablet",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "https://google.com"
            }
          },
          {
            "name": "device",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "desktop",
              "enum": [
                "desktop",
                "mobile",
                "tablet"
              ]
            }
          }
        ]
      }
    },
    "/api/tools/temp-mail/create": {
      "get": {
        "summary": "Create Temp Mail",
        "description": "Buat alamat email sementara baru",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        }
      }
    },
    "/api/tools/temp-mail/inbox": {
      "get": {
        "summary": "Check Temp Mail Inbox",
        "description": "Cek kotak masuk email sementara berdasarkan alamat email dan token",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "example@ozsaip.com"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "your_token_here"
            }
          }
        ]
      }
    },
    "/api/tools/upscale": {
      "post": {
        "summary": "Upscale Image",
        "description": "Tingkatkan resolusi/kualitas foto otomatis",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "image/png": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "url": {
                    "type": "string",
                    "example": "https://files.clugx.my.id/contoh-ghibli.jpg"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/tools/upscale-vid": {
      "get": {
        "summary": "Upscale Video",
        "description": "Upscale video ke 2K atau 4K pakai unwatermark.ai",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolution",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "file",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Upscale Video",
        "description": "Upscale video ke 2K atau 4K pakai unwatermark.ai",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resolution",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "file",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/api/tools/web2apk": {
      "post": {
        "summary": "Web to APK",
        "description": "Konversi website menjadi file APK Android.",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "icon": {
                    "type": "string",
                    "format": "binary",
                    "description": "Upload file langsung"
                  },
                  "url": {
                    "type": "string",
                    "example": "https://kyzz-apis.my.id"
                  },
                  "app_name": {
                    "type": "string",
                    "example": "KyzzApis"
                  },
                  "version_name": {
                    "type": "string"
                  },
                  "version_code": {
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        }
      }
    },
    "/api/tools/whois": {
      "get": {
        "summary": "Domain Lookup",
        "description": "Cek info registrasi domain (RDAP): registrar, nameserver, tanggal expired, dll",
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "Berhasil",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/ServerError"
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "google.com"
            }
          }
        ]
      }
    }
  }
}
