カスタムゲームを作成
const url = 'https://game.retrogather.com/rest/v1/addCustomGame';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"title":"example","titleKana":"example","titleEn":"example","releaseDate":"2026-04-15","platformId":1,"modelNumber":"example","price":1,"publisherId":1,"genreId":1,"genreSubId":1,"janCode":"example","igdbId":"example","igdbCoverId":"example","mediaId":"example","asin":"example","wikipediaUrl":"https://example.com","catalogId":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://game.retrogather.com/rest/v1/addCustomGame \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "title": "example", "titleKana": "example", "titleEn": "example", "releaseDate": "2026-04-15", "platformId": 1, "modelNumber": "example", "price": 1, "publisherId": 1, "genreId": 1, "genreSubId": 1, "janCode": "example", "igdbId": "example", "igdbCoverId": "example", "mediaId": "example", "asin": "example", "wikipediaUrl": "https://example.com", "catalogId": "example" }'PREMIUM. Custom game / カスタムゲーム: create your own game entry. Only when the user asks to register a game RGG does not cover: run searchGames first (also try a hiragana reading) so you do not duplicate the public master. platformId and publisherId may be public or your custom entries.
Plans: PREMIUM. Scopes: games:write.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Title reading in hiragana. Used for hiragana search and support genre matching.
YYYY-MM-DD.
Public platformId from listPlatforms, or one of your custom platforms.
Retail price in JPY.
Public companyId from listCompanies, or one of your custom companies.
Main genre only (listGenres rows without parentGenreId). Support genres are matched from titleKana and cannot be set.
Main genre only (listGenres rows without parentGenreId). Support genres are matched from titleKana and cannot be set.
IGDB game id.
IGDB cover image id (image_id).
Media Arts Database id (e.g. M724583).
Amazon ASIN for the purchase link. Write-only: not returned except by exportMyData customGames.
Http(s) URL. Send null to clear it on update.
Examplegenerated
{ "title": "example", "titleKana": "example", "titleEn": "example", "releaseDate": "2026-04-15", "platformId": 1, "modelNumber": "example", "price": 1, "publisherId": 1, "genreId": 1, "genreSubId": 1, "janCode": "example", "igdbId": "example", "igdbCoverId": "example", "mediaId": "example", "asin": "example", "wikipediaUrl": "https://example.com", "catalogId": "example"}Responses
Section titled “ Responses ”Tool result JSON (no MCP envelope). Delete previews also return 200 with confirmToken.
object
object
object
object
object
Example
{ "code": "plan_required", "status": "PLANNED", "items": [ { "status": "added" } ]}Invalid_input (arguments, broken JSON body)
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Missing or invalid API key
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Insufficient_scope, plan_required, or access_suspended
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Target or tool not found
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Already_exists or revision_conflict (stale revision: re-read, then retry)
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Burst or daily quota exceeded. See resetAt.
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Headers
Section titled “Headers”Seconds
Unexpected server failure. Retrying the same call will not help.
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Temporary failure or maintenance. Retry after Retry-After.
Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.
object
Examplegenerated
{ "error": "example", "code": "example", "message": "example", "retryable": true, "retryAfterSec": 1, "requestId": "example", "resetAt": "example", "remaining": 1, "scopes": [ "example" ], "upgradeUrl": "example"}Headers
Section titled “Headers”Seconds
