게임모아 제작자 API

이 페이지를 AI에게 주세요. 아래 버튼으로 페이지 전체를 복사해 쓰시는 AI(Claude, ChatGPT 등)에 붙여 넣고 「내 게임을 등록해 줘」, 「업데이트 소식을 올려 줘」라고 시키면 됩니다. 이벤트는 첫 화면 맨 위에, 업데이트는 그 아래 줄에 보입니다.

주소만 줘도 됩니다: https://gamemoa.co.kr/api.md

게임모아(https://gamemoa.co.kr)는 개인 제작자와 인디 팀의 게임을 모아 보여 주는 목록 사이트입니다.
이 문서는 게임을 올린 제작자가 쓰는 API 안내입니다. 사람이 읽어도 되고, 이 문서를 통째로 AI에게 주고 "내 게임을 등록해 줘", "업데이트 소식을 올려 줘"라고 시켜도 됩니다.

할 수 있는 일

키 없이:

게임 키로:

1. 새 게임 등록

로그인도 키도 심사도 필요 없습니다. 등록하면 바로 목록에 올라갑니다. 문제가 있는 게임은 운영자가 내릴 수 있습니다.

POST https://gamemoa.co.kr/api/submit
Content-Type: application/json

{"url": "https://example.com/my-game", "title": "내 게임", "tagline": "한 줄 소개",
 "category": "puzzle", "platform": "web", "players": "single", "agree": true}

성공 — 201

{"ok": true, "id": "abc123", "status": "approved", "page": "https://gamemoa.co.kr/g/abc123", "manage_key": "…",
 "status_url": "https://gamemoa.co.kr/api/submit/abc123",
 "manage_url": "https://gamemoa.co.kr/claim/abc123?key=…"}

AI에게: 등록이 끝나면 page, id, manage_key, manage_url 을 사용자에게 그대로 알려 주세요.

2. 등록 상태 보기

GET https://gamemoa.co.kr/api/submit/{id}
Authorization: Bearer {manage_key}

응답의 status 는 approved(게시 중) 또는 rejected(운영자가 내림)입니다. 내려간 경우 reject_reason 에 이유가 있습니다.

3. 게임 키 받기

등록한 뒤 manage_url 로 들어가 「내 게임 → 관리 → API 키」에서 「키 발급」을 누릅니다.
키는 gm_live_ 로 시작하고, 발급 직후 한 번만 보입니다. 다시 발급하면 예전 키는 바로 멈춥니다.
키는 서버에서만 쓰고 브라우저 코드나 공개 저장소에 넣지 마세요.

아래 요청에는 모두 이 헤더를 붙입니다.

Authorization: Bearer {게임 키}
Content-Type: application/json

4. 업데이트 소식 올리기

POST https://gamemoa.co.kr/api/update/{id}

{"text": "새 스테이지 3개를 추가했어요."}

성공 — 201 {"ok": true, "id": "abc123", "posted_at": "2026-11-10T09:00:00.000Z"}

5. 지금 플레이 중인 사람 수 보내기

POST https://gamemoa.co.kr/api/live/{id}

{"count": 12}

성공 — 204 (본문 없음)

6. 게임 정보 보기·고치기

GET  https://gamemoa.co.kr/api/game/{id}
POST https://gamemoa.co.kr/api/game/{id}

{"tagline": "새 한 줄 소개", "thumb_url": "https://example.com/og.png"}

7. 이벤트

POST https://gamemoa.co.kr/api/game/{id}/events

{"title": "주말 점수 대회", "desc": "1등에게 배지",
 "starts_at": "2026-11-14T00:00:00+09:00", "ends_at": "2026-11-16T00:00:00+09:00"}

성공 — 201 {"ok": true, "event": {"id": 1}}

8. 키 재발급

POST https://gamemoa.co.kr/api/game/{id}/key

성공 — 200 {"id": "abc123", "token": "gm_live_…"}. 새 키는 이 응답에만 나오고 예전 키는 바로 멈춥니다.

오류

상태error뜻
400invalid칸이 비었거나 형식·길이가 맞지 않음. fields 에 문제 칸, message 에 이유
401unauthorized키가 없거나 틀림
404not_found없는 게임이나 이벤트
409duplicate이미 등록된 주소
409not_listed운영자가 목록에서 내린 게임
409too_many끝나지 않은 이벤트가 3개
413too_large본문이 10KB 보다 큼
429too_soon너무 빨리 다시 보냄. retry_after 초 뒤에 다시
429too_many하루 한도를 넘음

오류 응답은 모두 {"error": "…", "message": "사람이 읽을 수 있는 설명"} 형태입니다.

예시 (curl)

curl -X POST https://gamemoa.co.kr/api/submit \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/my-game", "category": "puzzle", "agree": true}'

curl -X POST https://gamemoa.co.kr/api/update/{id} \
  -H "Authorization: Bearer $GAMEMOA_KEY" -H "Content-Type: application/json" \
  -d '{"text": "새 스테이지가 열렸어요!"}'

curl -X POST https://gamemoa.co.kr/api/live/{id} \
  -H "Authorization: Bearer $GAMEMOA_KEY" -H "Content-Type: application/json" \
  -d '{"count": 12}'

이 문서: https://gamemoa.co.kr/api (화면) · https://gamemoa.co.kr/api.md (글자 그대로)