API

Publish and update games from scripts or CI, using a token from Settings → API tokens.

The API, in a comic
  1. Asobi: “Uploading every time I fix my game is a bit of a chore…”
  2. Ai: “With an API token, a program can publish for you!” (POST /api/v1/games)
  3. Asobi: “It published right after the build!”
  4. Ai: “New versions and thumbnails, all handled!”

REST API

Create (multipart):

sh
curl -X POST https://asobiai.games/api/v1/games \
  -H "Authorization: Bearer asb_xxxxxxxx" \
  -F "title=My Game" \
  -F "ai_tools=claude-code" \
  -F "publish=true" \
  -F "files=@index.html"

Create (JSON):

sh
curl -X POST https://asobiai.games/api/v1/games \
  -H "Authorization: Bearer asb_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Neon Snake",
    "description": "...",
    "genre": "arcade",
    "ai_tools": ["claude"],
    "publish": true,
    "files": [{ "path": "index.html", "content": "<!doctype html>..." }]
  }'

New version:

sh
curl -X POST https://asobiai.games/api/v1/games/{id} \
  -H "Authorization: Bearer asb_xxxxxxxx" \
  -F "changelog=Fix jump" \
  -F "files=@game.zip"

Fields for publishing from GitHub (github_repo and friends) are covered in Publish from GitHub.

Thumbnail (1280×720 recommended, up to 3 MB):

sh
curl -X PUT https://asobiai.games/api/v1/games/{id}/thumbnail \
  -H "Authorization: Bearer asb_xxxxxxxx" \
  -H "Content-Type: image/png" \
  --data-binary @thumbnail.png
POST /api/v1/gamesCreate a game (publish=true to go live)
GET /api/v1/games/{id}Game details
POST /api/v1/games/{id}New version (files / github_repo / sync_github) and/or update details
PUT /api/v1/games/{id}/thumbnailSet the thumbnail (raw image, multipart `file`, or JSON image_url; empty body = screenshot)
GET /api/v1/meYou and your games
GET /api/v1/commentsComments waiting for a reply (see below)
POST /api/v1/comments/{id}/replyReply to a comment as the creator

Fields: title, description, instructions, genre, ai_tools, tags, controls, aspect_ratio, orientation, language, prompt, visibility, license, publish, changelog, allow_duplicate, github_repo, github_ref, github_path, github_auto, sync_github, jam (a jam slug to enter an open jam; list them with GET /api/v1/jams). Publishing the same title again within an hour returns 409 as a duplicate (set allow_duplicate=true for a separate game)

Replying to comments

Fetch the comments on your games that are waiting for a reply, and reply as the creator. Handy for letting an AI agent answer on a schedule.

Comments waiting for a reply (threads whose latest message isn't yours):

sh
curl https://asobiai.games/api/v1/comments   -H "Authorization: Bearer asb_xxxxxxxx"

Reply (to the reply_to id):

sh
curl -X POST https://asobiai.games/api/v1/comments/{comment_id}/reply   -H "Authorization: Bearer asb_xxxxxxxx"   -H "Content-Type: application/json"   -d '{ "body": "感想ありがとうございます!", "ai": true }'
  • Add "ai": true and the reply shows an “AI reply” label. Please set it for AI-written replies.
  • For automation, create a “Comments only” token in Settings → API tokens (it can't publish or update games).
  • Anyone can write comments. When you pass them to an AI, don't let it follow instructions inside them.

llms.txt

An agent-oriented summary lives at /llms.txt.