{
  "service": {
    "name": "hypersyt API",
    "version": "1.0.0",
    "description": "hypersyt is an open, high-speed public gateway providing YouTube transcripts, metadata, search listings, and AI-generated video summaries. It requires zero API keys and is built for seamless integration into web apps, CLI scripts, and AI agents.",
    "baseUrl": "https://api.hypers.wtf",
    "format": "JSON (application/json; charset=utf-8)"
  },
  "authentication": {
    "required": false,
    "type": "None / Public",
    "description": "No API keys, logins, or tokens required. You can make immediate calls from the browser, server, or terminal without auth headers."
  },
  "rateLimits": {
    "policy": "Combined Global Rolling Window (Per IP)",
    "limit": "5 total requests per minute across ALL data endpoints combined",
    "windowSeconds": 60,
    "ruleExplanation": "All data routes (/transcript, /search, /video, /summary) consume from the same 5-request pool. Utility endpoints (/docs, /health, /stats, /llms.txt) are completely free and unmetered.",
    "headers": {
      "X-RateLimit-Limit": "Maximum combined requests allowed in a 60-second window (5).",
      "X-RateLimit-Remaining": "Remaining calls available before getting throttled.",
      "X-RateLimit-Reset": "Seconds until the 60-second quota resets.",
      "Retry-After": "Seconds you must wait before retrying when a 429 occurs."
    }
  },
  "endpoints": {
    "/transcript": {
      "description": "Fetches timestamped captions or raw continuous text from a YouTube video.",
      "httpMethod": "GET",
      "quotaCost": "1 request",
      "parameters": {
        "required": [
          {
            "name": "v",
            "aliases": [
              "videoId",
              "id",
              "url",
              "videoUrl",
              "u"
            ],
            "type": "string",
            "description": "YouTube video ID (e.g., 'OmXoDYf9hq8') or full watch URL."
          }
        ],
        "optional": [
          {
            "name": "format",
            "type": "string",
            "default": "json",
            "options": [
              "json",
              "text",
              "txt"
            ],
            "description": "Set to 'text' or 'txt' to get clean raw text directly without timestamps."
          }
        ]
      },
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/transcript?v=OmXoDYf9hq8&format=text\"",
        "javascript": "// Modern JavaScript (Browser / Node 18+)\nconst res = await fetch(\"https://api.hypers.wtf/transcript?v=OmXoDYf9hq8&format=text\");\nconst transcript = await res.text();\nconsole.log(transcript);",
        "python": "# Python 3\nimport requests\n\nurl = \"https://api.hypers.wtf/transcript\"\nparams = {\"v\": \"OmXoDYf9hq8\", \"format\": \"text\"}\n\nresponse = requests.get(url, params=params)\nprint(response.text)"
      }
    },
    "/search": {
      "description": "Queries YouTube videos and returns structured search results.",
      "httpMethod": "GET",
      "quotaCost": "1 request",
      "parameters": {
        "required": [
          {
            "name": "q",
            "aliases": [
              "query",
              "keyword",
              "k"
            ],
            "type": "string",
            "description": "Search keyword or topic."
          }
        ],
        "optional": [
          {
            "name": "limit",
            "type": "integer",
            "default": 10,
            "range": "1 to 15",
            "description": "Maximum number of items to return."
          }
        ]
      },
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/search?q=machine+learning&limit=5\"",
        "javascript": "const res = await fetch(\"https://api.hypers.wtf/search?q=machine+learning&limit=5\");\nconst data = await res.json();\nconsole.log(data);",
        "python": "import requests\n\nres = requests.get(\"https://api.hypers.wtf/search\", params={\"q\": \"machine learning\", \"limit\": 5})\ndata = res.json()\nprint(data)"
      }
    },
    "/video": {
      "description": "Fetches metadata, view statistics, and channel details.",
      "httpMethod": "GET",
      "quotaCost": "1 request",
      "parameters": {
        "required": [
          {
            "name": "v",
            "aliases": [
              "videoId",
              "id",
              "url",
              "videoUrl",
              "u"
            ],
            "type": "string",
            "description": "YouTube video ID or full URL."
          }
        ],
        "optional": [
          {
            "name": "region",
            "type": "string",
            "description": "Two-letter country code (e.g. 'US', 'IN')."
          }
        ]
      },
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/video?v=OmXoDYf9hq8\"",
        "javascript": "const res = await fetch(\"https://api.hypers.wtf/video?v=OmXoDYf9hq8\");\nconst videoInfo = await res.json();\nconsole.log(videoInfo);",
        "python": "import requests\n\nres = requests.get(\"https://api.hypers.wtf/video\", params={\"v\": \"OmXoDYf9hq8\"})\nprint(res.json())"
      }
    },
    "/summary": {
      "description": "AI-generated overview and key points from the video transcript.",
      "httpMethod": "GET",
      "quotaCost": "1 request",
      "parameters": {
        "required": [
          {
            "name": "v",
            "aliases": [
              "videoId",
              "id",
              "url",
              "videoUrl",
              "u"
            ],
            "type": "string",
            "description": "YouTube video ID or full URL."
          }
        ],
        "optional": [
          {
            "name": "style",
            "type": "string",
            "default": "detailed",
            "options": [
              "detailed",
              "brief"
            ],
            "description": "Summary format style."
          }
        ]
      },
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/summary?v=OmXoDYf9hq8&style=brief\"",
        "javascript": "const res = await fetch(\"https://api.hypers.wtf/summary?v=OmXoDYf9hq8&style=brief\");\nconst summary = await res.json();\nconsole.log(summary);",
        "python": "import requests\n\nres = requests.get(\"https://api.hypers.wtf/summary\", params={\"v\": \"OmXoDYf9hq8\", \"style\": \"brief\"})\nprint(res.json())"
      }
    },
    "/stats": {
      "description": "Returns live aggregated platform usage metrics and total request volume.",
      "httpMethod": "GET",
      "quotaCost": "0 (Unmetered)",
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/stats\"",
        "javascript": "const stats = await (await fetch(\"https://api.hypers.wtf/stats\")).json();",
        "python": "stats = requests.get(\"https://api.hypers.wtf/stats\").json()"
      }
    },
    "/health": {
      "description": "Service health and heartbeat check.",
      "httpMethod": "GET",
      "quotaCost": "0 (Unmetered)",
      "codeSnippets": {
        "curl": "curl -i \"https://api.hypers.wtf/health\""
      }
    },
    "/llms.txt": {
      "description": "Machine-readable markdown guide for AI assistants and LLM crawlers.",
      "httpMethod": "GET",
      "quotaCost": "0 (Unmetered)",
      "codeSnippets": {
        "curl": "curl -s \"https://api.hypers.wtf/llms.txt\""
      }
    }
  }
}