{"info": {"title": "API Endpoints", "version": "1.0.0"}, "servers": [{"url": "https://keepthescore.com/"}], "tags": [{"name": "Sports_Api_V1", "description": "Sports Scoreboard API endpoints for controlling sports scoreboards in real-time."}], "paths": {"/api/v1/sport/{token}/": {"get": {"operationId": "sports_api_v1_generic_get_sport_data", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "description": "The token of the board to retrieve.", "required": true}], "tags": ["Sports_Api_V1"], "summary": "Return all sport scoreboard data as JSON.", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/timer/reset": {"post": {"operationId": "sports_api_v1_generic_reset_timer", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset the main timer to its initial duration.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/timer/toggle": {"post": {"operationId": "sports_api_v1_generic_toggle_timer", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the main timer for any sport scoreboard.", "description": "Sport-specific behavior:\n- Basketball: Also syncs the shot clock (starts/stops with main timer)", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/timer/adjust": {"post": {"operationId": "sports_api_v1_generic_adjust_timer", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Adjust the main timer duration by a specified number of seconds.", "description": "Body: {\"amount\": <seconds>} - positive to add time, negative to subtract.\nThe timer duration will not go below 0.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/reset": {"post": {"operationId": "sports_api_v1_hockey_reset_hockey_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new hockey game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/reset": {"post": {"operationId": "sports_api_v1_soccer_reset_soccer_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new soccer match.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/reset": {"post": {"operationId": "sports_api_v1_baseball_reset_baseball_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new baseball game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/reset": {"post": {"operationId": "sports_api_v1_football_reset_football_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new football game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/reset": {"post": {"operationId": "sports_api_v1_lacrosse_reset_lacrosse_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new lacrosse game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/shotclock/reset": {"post": {"operationId": "sports_api_v1_generic_reset_shotclock", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset the shot clock to its initial duration.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/reset": {"post": {"operationId": "sports_api_v1_set_based_reset_set_based_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new match.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/shotclock/toggle": {"post": {"operationId": "sports_api_v1_generic_toggle_shotclock", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the shot clock timer.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/shotclock/adjust": {"post": {"operationId": "sports_api_v1_generic_adjust_shotclock", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Adjust the shot clock duration by a specified number of seconds.", "description": "Body: {\"amount\": <seconds>} - positive to add time, negative to subtract.\nThe shot clock duration will not go below 0.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/reset": {"post": {"operationId": "sports_api_v1_basketball_reset_basketball_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new basketball game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/reset": {"post": {"operationId": "sports_api_v1_volleyball_reset_volleyball_game", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset all game state to initial values for a new volleyball game.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/final/toggle": {"post": {"operationId": "sports_api_v1_hockey_toggle_hockey_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle game final status for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/final/toggle": {"post": {"operationId": "sports_api_v1_soccer_toggle_soccer_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the FINAL state of a soccer scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/count/reset": {"post": {"operationId": "sports_api_v1_baseball_reset_baseball_count", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset balls and strikes to zero.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/flag/toggle": {"post": {"operationId": "sports_api_v1_football_toggle_football_flag", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the foul/flag indicator on a football scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/shotclock/reset-short": {"post": {"operationId": "sports_api_v1_generic_reset_shotclock_short", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset the shot clock to its short-reset duration (e.g. the FIBA 14-second rule).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/final/toggle": {"post": {"operationId": "sports_api_v1_baseball_toggle_baseball_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the FINAL state of a baseball scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/final/toggle": {"post": {"operationId": "sports_api_v1_football_toggle_football_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the FINAL state of a football scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/final/toggle": {"post": {"operationId": "sports_api_v1_lacrosse_toggle_lacrosse_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle game final status for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/base/1/toggle": {"post": {"operationId": "sports_api_v1_baseball_toggle_baseball_base_1", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle runner on first base.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/base/2/toggle": {"post": {"operationId": "sports_api_v1_baseball_toggle_baseball_base_2", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle runner on second base.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/base/3/toggle": {"post": {"operationId": "sports_api_v1_baseball_toggle_baseball_base_3", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle runner on third base.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/final/toggle": {"post": {"operationId": "sports_api_v1_universal_toggle_universal_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the FINAL state of a universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/serve/toggle": {"post": {"operationId": "sports_api_v1_set_based_toggle_set_based_serve", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Manually switch serve / side-out (pickleball-aware).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/outs/increment": {"post": {"operationId": "sports_api_v1_baseball_increment_baseball_outs", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment outs count for baseball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/final/toggle": {"post": {"operationId": "sports_api_v1_basketball_toggle_basketball_final", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle the FINAL state of a basketball scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/serve/toggle": {"post": {"operationId": "sports_api_v1_volleyball_toggle_volleyball_serve_endpoint", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle serve between home and away teams.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/period/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_period", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment period for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/penalty/add": {"post": {"operationId": "sports_api_v1_hockey_add_hockey_home_penalty", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Add a penalty for home team in hockey.", "description": "Body: {duration: seconds (default 120), number: player number (default \"\")}", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/penalty/add": {"post": {"operationId": "sports_api_v1_hockey_add_hockey_away_penalty", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Add a penalty for away team in hockey.", "description": "Body: {duration: seconds (default 120), number: player number (default \"\")}", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/period/increment": {"post": {"operationId": "sports_api_v1_soccer_increment_soccer_period", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment period (half) for soccer.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/balls/increment": {"post": {"operationId": "sports_api_v1_baseball_increment_baseball_balls", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment balls count for baseball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/downs/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_downs", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment downs for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/yards/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_yards", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment yards to go for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/possession/toggle": {"post": {"operationId": "sports_api_v1_soccer_toggle_soccer_possession", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle possession between home and away teams.", "description": "When toggling possession, one team gets possession and the other loses it.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/first-down-reset": {"post": {"operationId": "sports_api_v1_football_reset_football_first_down", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Reset down and distance to 1st & 10 in a single atomic update.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/penalty/clear": {"post": {"operationId": "sports_api_v1_hockey_clear_hockey_home_penalty", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Clear the oldest penalty for home team in hockey.", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/penalty/clear": {"post": {"operationId": "sports_api_v1_hockey_clear_hockey_away_penalty", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Clear the oldest penalty for away team in hockey.", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/period/increment": {"post": {"operationId": "sports_api_v1_lacrosse_increment_lacrosse_period", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment period for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/strikes/increment": {"post": {"operationId": "sports_api_v1_baseball_increment_baseball_strikes", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment strikes count for baseball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/quarter/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_quarter", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment quarter for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/timeout/toggle": {"post": {"operationId": "sports_api_v1_hockey_toggle_hockey_home_timeout", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle home team timeout for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/timeout/toggle": {"post": {"operationId": "sports_api_v1_hockey_toggle_hockey_away_timeout", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle away team timeout for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/period/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_period", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment period for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/period/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_period", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment period for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/score/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/score/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/shots/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_home_shots", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team shots for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/shots/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_away_shots", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team shots for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/home/score/increment": {"post": {"operationId": "sports_api_v1_soccer_increment_soccer_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for soccer.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/soccer/away/score/increment": {"post": {"operationId": "sports_api_v1_soccer_increment_soccer_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for soccer.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/possession/toggle": {"post": {"operationId": "sports_api_v1_universal_toggle_universal_possession", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle possession between home and away teams.", "description": "When toggling possession, one team gets possession and the other loses it.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/home/runs/increment": {"post": {"operationId": "sports_api_v1_baseball_increment_baseball_home_runs", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team runs for baseball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/baseball/away/runs/increment": {"post": {"operationId": "sports_api_v1_baseball_increment_baseball_away_runs", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team runs for baseball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/possession/toggle": {"post": {"operationId": "sports_api_v1_basketball_toggle_basketball_possession", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle possession between home and away teams.", "description": "When toggling possession, one team gets possession and the other loses it.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/home/bonus/toggle": {"post": {"operationId": "sports_api_v1_basketball_toggle_basketball_home_bonus", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle bonus for home team in basketball.", "description": "When show_double_bonus is enabled on the board, this cycles through three states:\nno bonus -> bonus -> double bonus -> no bonus\n\nWhen show_double_bonus is disabled, this performs a simple toggle:\nno bonus <-> bonus\n\nIf double_bonus is active and the bonus is toggled off, double_bonus is also turned off.", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/away/bonus/toggle": {"post": {"operationId": "sports_api_v1_basketball_toggle_basketball_away_bonus", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle bonus for away team in basketball.", "description": "When show_double_bonus is enabled on the board, this cycles through three states:\nno bonus -> bonus -> double bonus -> no bonus\n\nWhen show_double_bonus is disabled, this performs a simple toggle:\nno bonus <-> bonus\n\nIf double_bonus is active and the bonus is toggled off, double_bonus is also turned off.", "responses": {"204": {"description": "No Content"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/empty_net/toggle": {"post": {"operationId": "sports_api_v1_hockey_toggle_hockey_home_empty_net", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle home team empty net for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/empty_net/toggle": {"post": {"operationId": "sports_api_v1_hockey_toggle_hockey_away_empty_net", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle away team empty net for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/home/set/increment": {"post": {"operationId": "sports_api_v1_set_based_increment_set_based_home_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment the home team's sets won (simple mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/away/set/increment": {"post": {"operationId": "sports_api_v1_set_based_increment_set_based_away_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment the away team's sets won (simple mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/home/score/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/away/score/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/home/set/increment": {"post": {"operationId": "sports_api_v1_volleyball_increment_volleyball_home_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team sets won (simple mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/away/set/increment": {"post": {"operationId": "sports_api_v1_volleyball_increment_volleyball_away_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team sets won (simple mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/home/score/increment": {"post": {"operationId": "sports_api_v1_lacrosse_increment_lacrosse_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/away/score/increment": {"post": {"operationId": "sports_api_v1_lacrosse_increment_lacrosse_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/home/empty_net/toggle": {"post": {"operationId": "sports_api_v1_lacrosse_toggle_lacrosse_home_empty_net", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle home team empty net for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/away/empty_net/toggle": {"post": {"operationId": "sports_api_v1_lacrosse_toggle_lacrosse_away_empty_net", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle away team empty net for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/home/score/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/away/score/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/home/fouls/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_home_fouls", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team fouls for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/away/fouls/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_away_fouls", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team fouls for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/home/score/increment": {"post": {"operationId": "sports_api_v1_set_based_increment_set_based_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment the home team's points (simple or current-set, sport auto-detected).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/away/score/increment": {"post": {"operationId": "sports_api_v1_set_based_increment_set_based_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment the away team's points (simple or current-set, sport auto-detected).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/home/fouls/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_home_fouls", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team fouls for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/away/fouls/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_away_fouls", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team fouls for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/home/possession/toggle": {"post": {"operationId": "sports_api_v1_football_toggle_football_home_possession", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle home team possession for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/away/possession/toggle": {"post": {"operationId": "sports_api_v1_football_toggle_football_away_possession", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Toggle away team possession for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/home/score/increment": {"post": {"operationId": "sports_api_v1_volleyball_increment_volleyball_home_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team score for volleyball.", "description": "In simple mode: updates home.score\nIn expanded mode: updates home.scores_in_sets[current_set - 1]\nAlso switches serve to home team when scoring (amount > 0).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/away/score/increment": {"post": {"operationId": "sports_api_v1_volleyball_increment_volleyball_away_score", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team score for volleyball.", "description": "In simple mode: updates away.score\nIn expanded mode: updates away.scores_in_sets[current_set - 1]\nAlso switches serve to away team when scoring (amount > 0).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/set-based/current_set/increment": {"post": {"operationId": "sports_api_v1_set_based_increment_set_based_current_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Advance to the next/previous set (expanded mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/home/points/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_home_points", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team points for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/away/points/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_away_points", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team points for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/home/timeouts/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_home_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team timeouts for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/football/away/timeouts/increment": {"post": {"operationId": "sports_api_v1_football_increment_football_away_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team timeouts for football.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/volleyball/current_set/increment": {"post": {"operationId": "sports_api_v1_volleyball_increment_volleyball_current_set", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment current set number (expanded mode).", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/home/timeouts/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_home_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team timeouts for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/universal/away/timeouts/increment": {"post": {"operationId": "sports_api_v1_universal_increment_universal_away_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team timeouts for universal scoreboard.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/home/timeouts/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_home_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team timeouts for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/basketball/away/timeouts/increment": {"post": {"operationId": "sports_api_v1_basketball_increment_basketball_away_timeouts", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team timeouts for basketball.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/home/shots_on_goal/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_home_shots_on_goal", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team shots on goal for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/hockey/away/shots_on_goal/increment": {"post": {"operationId": "sports_api_v1_hockey_increment_hockey_away_shots_on_goal", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team shots on goal for hockey.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/home/shots_on_goal/increment": {"post": {"operationId": "sports_api_v1_lacrosse_increment_lacrosse_home_shots_on_goal", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment home team shots on goal for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}, "/api/v1/sport/{token}/lacrosse/away/shots_on_goal/increment": {"post": {"operationId": "sports_api_v1_lacrosse_increment_lacrosse_away_shots_on_goal", "parameters": [{"in": "path", "name": "token", "schema": {"type": "string"}, "required": true}], "tags": ["Sports_Api_V1"], "summary": "Increment away team shots on goal for lacrosse.", "responses": {"200": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageResponse"}}}, "description": "OK"}, "400": {"description": "Malformed request"}, "404": {"description": "Board not found"}, "403": {"description": "This token does not allow the board to be edited"}, "429": {"description": "Too many requests"}, "500": {"description": "Internal server error"}}}}}, "openapi": "3.0.3", "components": {"schemas": {"MessageResponse": {"type": "object", "properties": {"message": {"type": "string", "description": "Status message"}}, "required": ["message"]}}}}