{
	"openapi": "3.1.0",
	"info": {
		"title": "bscan.info public documentation API",
		"version": "1.0.0",
		"description": "Read-only discovery and Markdown for public browser privacy articles and tool documentation. No authentication is required. This API does not run browser tests, accept user files, passwords or 2FA secrets, or expose private session data."
	},
	"servers": [{ "url": "https://bscan.info" }],
	"security": [],
	"paths": {
		"/api/agent/pages": {
			"get": {
				"operationId": "listPublicPages",
				"summary": "List indexable public pages and their Markdown URLs",
				"parameters": [
					{
						"name": "locale",
						"in": "query",
						"schema": { "type": "string", "enum": ["en", "es", "pt", "zh", "ru", "de"] }
					},
					{
						"name": "kind",
						"in": "query",
						"schema": { "type": "string", "enum": ["scan", "blog", "tools"] }
					}
				],
				"responses": {
					"200": {
						"description": "Public page catalog",
						"content": {
							"application/json": {
								"schema": {
									"type": "object",
									"required": ["pages"],
									"properties": {
										"pages": { "type": "array", "items": { "$ref": "#/components/schemas/Page" } }
									}
								}
							}
						}
					}
				}
			}
		},
		"/markdown/{path}": {
			"get": {
				"operationId": "readPublicPage",
				"summary": "Read a public page as Markdown",
				"description": "The path is the public page path without its initial slash, for example blog/webRTC or de/tools/array-converter. It may contain slash-separated segments. Use /markdown/ for the homepage. Query strings are not used. Public HTML page URLs also accept Accept: text/markdown.",
				"parameters": [
					{
						"name": "path",
						"in": "path",
						"required": true,
						"schema": { "type": "string" },
						"example": "blog/webRTC"
					}
				],
				"responses": {
					"200": {
						"description": "Rendered documentation without live browser measurements",
						"content": { "text/markdown": { "schema": { "type": "string" } } }
					},
					"404": { "description": "Public page not found" }
				}
			}
		}
	},
	"components": {
		"schemas": {
			"Page": {
				"type": "object",
				"required": ["path", "locale", "kind", "indexable", "url", "markdown"],
				"properties": {
					"path": { "type": "string" },
					"locale": { "type": "string", "enum": ["en", "es", "pt", "zh", "ru", "de"] },
					"kind": { "type": "string", "enum": ["scan", "blog", "tools"] },
					"indexable": { "type": "boolean" },
					"url": { "type": "string", "format": "uri" },
					"markdown": { "type": "string", "format": "uri" }
				}
			}
		}
	}
}
