This page lists the current server API routes implemented in the codebase. Use the dashboard to manage games & API keys and the OAuth flow for authentication.
ShibaDB provides a GDScript implementation for simple use. The GDScript can be found here. Simply download the script, drag it into your scripts folder and register it as an autoload / global (Project > Project Settings > Globals). To implement the script, use the following code:
func _ready() -> void:
# Connect the signal for loading saves to a function in your code
ShibaDB.save_loaded.connect(_on_save_loaded)
# Initialize ShibaDB with your Game ID from the dashboard
await ShibaDB.init_shibadb("GAMEID_HERE")
# Load the user's saved progress
ShibaDB.load_progress()
func _on_save_loaded(saveData) -> void:
# Set your variables here! Don't forget to null check these or they might fail
# Example:
if saveData.has("coins"):
coins = int(saveData.coins)
func save_progress() -> void:
# Finally save your progress by calling this function.
# You can pass as many arguments as you like. Otherwise, you can also pass a Dictionary[String, Variant]
ShibaDB.save_progress({ "coins": coins })
func reset_progress() -> void:
# If you want to reset the players' progress, use this method:
# The name currently defaults to "Untitled Save"
ShibaDB.reset_progress("MY SAVE NAME")API root / status
{"message":"ShibaDB API","version":0.1}/src/app/api/v1/route.tsReturns the authenticated user (requires cookie or Authorization header).
/src/app/api/v1/auth/me/route.tsList games for the authenticated user (pagination & filters supported).
/src/app/api/v1/games/route.tsCreate a new game for the authenticated user. Body: { name, description }
{"name":"My Game","description":"My amazing game!"}/src/app/api/v1/games/new/route.tsGet, update or delete a single game. PUT accepts { name, description, config }.
/src/app/api/v1/games/[id]/route.tsDEPRECATED! Validate an API key for a game (public validation). Body: { key }
{"key":"SHIBADB-..."} /src/app/api/v1/games/[id]/keys/route.tsDEPRECATED! Remove an API key (owner only). Body: { key }
/src/app/api/v1/games/[id]/keys/route.tsList players for a game (pagination, sort).
/src/app/api/v1/games/[id]/players/route.tsCreate or update a player record (owner only). Body: { playerId, slackId?, gameData?, totalPlayTime? }
{"playerId":"player1","gameData": {"score":100}}/src/app/api/v1/games/[id]/players/route.tsGet or create a specific player. POST can add a new player (owner only).
/src/app/api/v1/games/[id]/players/[playerId]/route.tsRoutes that require a logged-in user check for the shibaCookie session cookie or a Bearer token in the Authorization header. Sessions are created in the Slack callback flow.