{"openapi":"3.1.0","info":{"title":"PlatPhorm BBS API","version":"1.0.0-phase1","description":"Public-safe BBS browsing, boards, threads, posts, announcements, activity, files/games discovery, and MCP community tooling."},"servers":[{"url":"https://bbs.platphormnews.com"}],"security":[],"components":{"securitySchemes":{"PlatPhormApiKey":{"type":"apiKey","in":"header","name":"X-PlatPhorm-API-Key","description":"Future protected-action key. Public-safe Phase 1 endpoints do not require this key by default."},"PlatPhormBearer":{"type":"http","scheme":"bearer","description":"Authorization: Bearer $PLATPHORM_API_KEY for future protected actions."}}},"paths":{"/api/health":{"get":{"summary":"Public-safe /api/health","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/health":{"get":{"summary":"Public-safe /api/v1/health","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/boards":{"get":{"summary":"Public-safe /api/v1/boards","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/threads":{"get":{"summary":"Public-safe /api/v1/threads","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/posts":{"get":{"summary":"Public-safe /api/v1/posts","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/announcements":{"get":{"summary":"Public-safe /api/v1/announcements","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/activity":{"get":{"summary":"Public-safe /api/v1/activity","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/users/online":{"get":{"summary":"Public-safe /api/v1/users/online","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/files":{"get":{"summary":"Public-safe /api/v1/files","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/games":{"get":{"summary":"Public-safe /api/v1/games","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/portal":{"get":{"summary":"Public-safe /api/v1/portal","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/stats":{"get":{"summary":"Public-safe /api/v1/stats","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/search":{"get":{"summary":"Public-safe /api/v1/search","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/chat":{"get":{"summary":"Public-safe /api/v1/chat","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/v1/messages":{"get":{"summary":"Public-safe /api/v1/messages","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}}},"/api/mcp":{"get":{"summary":"Public-safe /api/mcp","responses":{"200":{"description":"Standard PlatPhorm REST envelope"}}},"post":{"summary":"JSON-RPC 2.0 MCP endpoint","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC 2.0 response"}}}}}}