{ "info": { "_postman_id": "a670efda-9591-4304-af67-a8eb87c8b938", "name": "tg-live-game", "description": "TG Live Game Backend API Collection", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "42537936" }, "item": [ { "name": "tg-live-game-hono", "item": [ { "name": "auth", "item": [ { "name": "register", "event": [ { "listen": "test", "script": { "exec": [ "pm.environment.set(\"accessToken\", pm.response.json().data.accessToken);", "pm.environment.set(\"refreshToken\", pm.response.json().data.refreshToken);" ], "type": "text/javascript", "packages": {}, "requests": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"pwtk003\",\n \"password\": \"test123456\",\n \"email\": \"pwtk003@pwtk.cc\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/register", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "register" ] } }, "response": [] }, { "name": "login", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.code === 200 && jsonData.data) {", " pm.collectionVariables.set('accessToken', jsonData.data.accessToken);", " pm.collectionVariables.set('refreshToken', jsonData.data.refreshToken);", "}" ], "type": "text/javascript", "packages": {}, "requests": {} } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"pwtk001\",\n \"password\": \"test123456\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/login", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "login" ] } }, "response": [] }, { "name": "refresh", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.code === 200 && jsonData.data) {", " pm.collectionVariables.set('accessToken', jsonData.data.accessToken);", " pm.collectionVariables.set('refreshToken', jsonData.data.refreshToken);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"refreshToken\": \"{{refreshToken}}\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/refresh", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "refresh" ] } }, "response": [] }, { "name": "me", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/auth/me", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "me" ] } }, "response": [] }, { "name": "change-password", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"oldPassword\": \"123456\",\n \"newPassword\": \"newpassword123\"\n}" }, "url": { "raw": "{{baseUrl}}/api/auth/change-password", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "change-password" ] } }, "response": [] }, { "name": "logout", "request": { "method": "POST", "header": [], "url": { "raw": "{{baseUrl}}/api/auth/logout", "host": [ "{{baseUrl}}" ], "path": [ "api", "auth", "logout" ] } }, "response": [] } ] }, { "name": "users", "item": [ { "name": "permissions", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id/permissions", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id", "permissions" ], "variable": [ { "key": "id", "value": "69270add987591d84a5385ecea3d5ab0" } ] } }, "response": [] }, { "name": "add", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"camera_id\": \"camera_id_here\",\n \"permission\": \"view\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users/:id/permissions", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id", "permissions" ], "variable": [ { "key": "id", "value": "user_id_here" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id/permissions/:permissionId", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id", "permissions", ":permissionId" ], "variable": [ { "key": "id", "value": "user_id_here" }, { "key": "permissionId", "value": "permission_id_here" } ] } }, "response": [] } ] }, { "name": "list", "request": { "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{accessToken}}", "type": "string" } ] }, "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "users" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "role", "value": "", "disabled": true }, { "key": "status", "value": "", "disabled": true }, { "key": "search", "value": "", "disabled": true } ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id" ], "variable": [ { "key": "id", "value": "cdee69f27a05ae30d7b7622879ce1ddf" } ] } }, "response": [] }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"username\": \"newuser1\",\n \"password\": \"password123\",\n \"email\": \"newuser@example.com\",\n \"role\": \"viewer\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users", "host": [ "{{baseUrl}}" ], "path": [ "api", "users" ] } }, "response": [] }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"updated@example.com\",\n \"role\": \"operator\",\n \"status\": \"active\"\n}" }, "url": { "raw": "{{baseUrl}}/api/users/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id" ], "variable": [ { "key": "id", "value": "db09b553ed4e1070be2f065c12e4fe81" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/users/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "users", ":id" ], "variable": [ { "key": "id", "value": "db09b553ed4e1070be2f065c12e4fe81" } ] } }, "response": [] } ] }, { "name": "cameras", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true }, { "key": "type", "value": "", "disabled": true }, { "key": "search", "value": "", "disabled": true } ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras", ":id" ], "variable": [ { "key": "id", "value": "camera_id_here" } ] } }, "response": [] }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Camera 1\",\n \"type\": \"rtsp\",\n \"protocol\": \"rtmps\",\n \"rtsp_url\": \"rtsp://example.com/stream\",\n \"location\": \"Room 101\"\n}" }, "url": { "raw": "{{baseUrl}}/api/cameras", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras" ] } }, "response": [] }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Camera 1 Updated\",\n \"location\": \"Room 102\",\n \"status\": \"online\"\n}" }, "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras", ":id" ], "variable": [ { "key": "id", "value": "camera_id_here" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras", ":id" ], "variable": [ { "key": "id", "value": "camera_id_here" } ] } }, "response": [] }, { "name": "sessions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/cameras/:id/sessions?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "cameras", ":id", "sessions" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true } ], "variable": [ { "key": "id", "value": "camera_id_here" } ] } }, "response": [] } ] }, { "name": "sessions", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" }, { "key": "status", "value": "", "disabled": true }, { "key": "camera_id", "value": "", "disabled": true } ] } }, "response": [] }, { "name": "live", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/live", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", "live" ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", ":id" ], "variable": [ { "key": "id", "value": "session_id_here" } ] } }, "response": [] }, { "name": "start", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"camera_id\": \"camera_id_here\",\n \"live_input_id\": \"live_input_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions" ] } }, "response": [] }, { "name": "end", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"recording_id\": \"recording_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions/:id/end", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", ":id", "end" ], "variable": [ { "key": "id", "value": "session_id_here" } ] } }, "response": [] }, { "name": "update-viewers", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"viewer_count\": 100\n}" }, "url": { "raw": "{{baseUrl}}/api/sessions/:id/viewers", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", ":id", "viewers" ], "variable": [ { "key": "id", "value": "session_id_here" } ] } }, "response": [] }, { "name": "stats", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id/stats", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", ":id", "stats" ], "variable": [ { "key": "id", "value": "session_id_here" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/sessions/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "sessions", ":id" ], "variable": [ { "key": "id", "value": "session_id_here" } ] } }, "response": [] } ] }, { "name": "stats", "item": [ { "name": "view", "item": [ { "name": "start", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"video_id\": \"video_id_here\"\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/start", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "view", "start" ] } }, "response": [] }, { "name": "end", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"view_id\": \"view_id_here\",\n \"watch_duration\": 300\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/end", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "view", "end" ] } }, "response": [] }, { "name": "heartbeat", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"view_id\": \"view_id_here\",\n \"watch_duration\": 60\n}" }, "url": { "raw": "{{baseUrl}}/api/stats/view/heartbeat", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "view", "heartbeat" ] } }, "response": [] } ] }, { "name": "video", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/video/:videoId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "video", ":videoId" ], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } }, "response": [] }, { "name": "session", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/session/:sessionId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "session", ":sessionId" ], "variable": [ { "key": "sessionId", "value": "session_id_here" } ] } }, "response": [] }, { "name": "overview", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/overview?days=7", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "overview" ], "query": [ { "key": "days", "value": "7" } ] } }, "response": [] }, { "name": "views", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stats/views?page=1&pageSize=50", "host": [ "{{baseUrl}}" ], "path": [ "api", "stats", "views" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "50" }, { "key": "video_id", "value": "", "disabled": true }, { "key": "session_id", "value": "", "disabled": true }, { "key": "user_id", "value": "", "disabled": true } ] } }, "response": [] } ] }, { "name": "audit-logs", "item": [ { "name": "stats", "item": [ { "name": "summary", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/stats/summary?days=7", "host": [ "{{baseUrl}}" ], "path": [ "api", "audit-logs", "stats", "summary" ], "query": [ { "key": "days", "value": "7" } ] } }, "response": [] } ] }, { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs?page=1&pageSize=50", "host": [ "{{baseUrl}}" ], "path": [ "api", "audit-logs" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "50" }, { "key": "action", "value": "", "disabled": true }, { "key": "resource", "value": "", "disabled": true }, { "key": "user_id", "value": "", "disabled": true }, { "key": "start_date", "value": "", "disabled": true }, { "key": "end_date", "value": "", "disabled": true } ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/:id", "host": [ "{{baseUrl}}" ], "path": [ "api", "audit-logs", ":id" ], "variable": [ { "key": "id", "value": "log_id_here" } ] } }, "response": [] }, { "name": "user", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/user/:userId?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "audit-logs", "user", ":userId" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" } ], "variable": [ { "key": "userId", "value": "user_id_here" } ] } }, "response": [] }, { "name": "resource", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/audit-logs/resource/:resource/:resourceId?page=1&pageSize=20", "host": [ "{{baseUrl}}" ], "path": [ "api", "audit-logs", "resource", ":resource", ":resourceId" ], "query": [ { "key": "page", "value": "1" }, { "key": "pageSize", "value": "20" } ], "variable": [ { "key": "resource", "value": "camera" }, { "key": "resourceId", "value": "resource_id_here" } ] } }, "response": [] } ] }, { "name": "stream", "item": [ { "name": "video", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/list", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", "list" ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", ":videoId" ], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", ":videoId" ], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } }, "response": [] }, { "name": "import", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"url\": \"https://example.com/video.mp4\",\n \"meta\": {\n \"name\": \"My Video\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/video/import", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", "import" ] } }, "response": [] }, { "name": "upload-url", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"maxDurationSeconds\": 3600,\n \"meta\": {\n \"name\": \"My Upload\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/video/upload-url", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", "upload-url" ] } }, "response": [] }, { "name": "playback", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/video/:videoId/playback", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "video", ":videoId", "playback" ], "variable": [ { "key": "videoId", "value": "video_id_here" } ] } }, "response": [] } ] }, { "name": "live", "item": [ { "name": "list", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/list", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", "list" ] } }, "response": [] }, { "name": "create", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"meta\": {\n \"name\": \"My Live Stream\"\n },\n \"recording\": {\n \"mode\": \"automatic\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/live", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live" ] } }, "response": [] }, { "name": "get", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", ":liveInputId" ], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } }, "response": [] }, { "name": "update", "request": { "method": "PUT", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"meta\": {\n \"name\": \"Updated Live Stream\"\n }\n}" }, "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", ":liveInputId" ], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } }, "response": [] }, { "name": "delete", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", ":liveInputId" ], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } }, "response": [] }, { "name": "playback", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId/playback", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", ":liveInputId", "playback" ], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } }, "response": [] }, { "name": "recordings", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/stream/live/:liveInputId/recordings", "host": [ "{{baseUrl}}" ], "path": [ "api", "stream", "live", ":liveInputId", "recordings" ], "variable": [ { "key": "liveInputId", "value": "live_input_id_here" } ] } }, "response": [] } ] } ] } ] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "{{accessToken}}", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "packages": {}, "requests": {}, "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "packages": {}, "requests": {}, "exec": [ "" ] } } ], "variable": [ { "key": "baseUrl", "value": "http://localhost:8787" }, { "key": "accessToken", "value": "" }, { "key": "refreshToken", "value": "" } ] }