カスタムゲームを更新
const url = 'https://game.retrogather.com/rest/v1/updateCustomGame';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"gameId":1,"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/updateCustomGame \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "gameId": 1, "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 / カスタムゲーム: patch your game entry. Omit a key to keep it; send null to clear a nullable field.
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.
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
{ "gameId": 1, "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
