{"ok":true,"service":"neeklo-gateway","version":"0.1.0","auth":{"header":"x-api-key","query":"key","publicEndpoints":["/","/health"]},"endpoints":[{"method":"GET","path":"/health","desc":"Service + Redis status, queue counts (public)"},{"method":"GET","path":"/","desc":"This capability catalog (public)"},{"method":"GET","path":"/dashboard","desc":"HTML status dashboard (key via ?key=)"},{"method":"POST","path":"/jobs","desc":"Enqueue a job. Body: JobInput"},{"method":"GET","path":"/jobs/:kind/:id","desc":"Job state + result"},{"method":"GET","path":"/jobs","desc":"Recent jobs across all kinds"}],"kinds":{"url":{"desc":"Scrape page(s) by URL. HTTP-first with auto browser fallback (parser-COMP/Chrome) on a PC worker","params":["query|urls[]","preferLine","options.engine=auto|http|browser"]},"telegram":{"desc":"Telegram channel posts via parser-tg (MTProto)","params":["query=username|id","limit","options.parse","options.since"]},"whatsapp":{"desc":"WhatsApp group messages via parser-COMP (browser)","params":["query=group","limit"]},"instagram":{"desc":"Instagram profile/posts via parser-COMP (browser)","params":["query","limit"]},"vk":{"desc":"VK wall/search via official API (needs VK_TOKEN on worker)","params":["query=domain|owner_id|search","limit"]},"site-search":{"desc":"Find info across sites + optional AI table export; browser fallback for blocked pages on a PC worker","params":["query","schema","options.sites[]","options.maxPages","options.engine=auto|http|browser"]},"api":{"desc":"Configured API connectors (planned)","params":["query","options"]}}}