{"openapi": "3.0.3", "info": {"title": "Phishing kit registry API", "version": "1.0.0", "description": "Masked read-only access to the kits, their use cases and captures."}, "servers": [{"url": "/"}], "components": {"securitySchemes": {"bearer": {"type": "http", "scheme": "bearer"}, "query": {"type": "apiKey", "in": "query", "name": "token"}}}, "paths": {"/api/kits": {"get": {"summary": "List kits", "responses": {"200": {"description": "Kit index"}}}}, "/api/kits/{slug}": {"get": {"summary": "Kit detail with use cases and examples", "parameters": [{"name": "slug", "in": "path", "required": true, "schema": {"type": "string"}}], "responses": {"200": {"description": "Kit"}, "404": {"description": "Unknown kit"}}}}, "/api/status": {"get": {"summary": "Online state and capture counts", "responses": {"200": {"description": "Status"}}}}, "/api/captures": {"get": {"summary": "All captures, newest first (passwords and cards masked)", "security": [{"bearer": []}, {"query": []}], "parameters": [{"name": "limit", "in": "query", "schema": {"type": "integer", "maximum": 100}}], "responses": {"200": {"description": "Captures"}, "401": {"description": "Unauthorized"}}}}, "/api/captures/{slug}": {"get": {"summary": "Captures for one kit, newest first (masked)", "security": [{"bearer": []}, {"query": []}], "parameters": [{"name": "slug", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "limit", "in": "query", "schema": {"type": "integer", "maximum": 50}}], "responses": {"200": {"description": "Captures"}, "401": {"description": "Unauthorized"}}}}, "/api/openapi.json": {"get": {"summary": "This document", "responses": {"200": {"description": "OpenAPI spec"}}}}}}