所有ソフトの一覧
const url = 'https://game.retrogather.com/rest/v1/getLibrary';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"platformIds":[1],"genreId":1,"title":"example","releaseDateFrom":"2026-04-15","releaseDateTo":"2026-04-15","attributes":["example"],"buyPlace":"example","ratingFrom":1,"ratingTo":1,"buyDateFrom":"2026-04-15","buyDateTo":"2026-04-15","buyPriceFrom":1,"buyPriceTo":1,"sortBy":"buyDate","sortOrder":"asc","page":1,"limit":1,"fields":["game"]}'};
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/getLibrary \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "platformIds": [ 1 ], "genreId": 1, "title": "example", "releaseDateFrom": "2026-04-15", "releaseDateTo": "2026-04-15", "attributes": [ "example" ], "buyPlace": "example", "ratingFrom": 1, "ratingTo": 1, "buyDateFrom": "2026-04-15", "buyDateTo": "2026-04-15", "buyPriceFrom": 1, "buyPriceTo": 1, "sortBy": "buyDate", "sortOrder": "asc", "page": 1, "limit": 1, "fields": [ "game" ] }'Library / 所有ソフト: list games the user owns, with filters and page/limit. Request memo or latestPlay in fields when needed; latestPlay requires play:read.
Plans: FREE / LIGHT / PREMIUM. Scopes: library:read.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”object
Platform IDs (OR)
Genre ID from listGenres. A root ID matches the game’s genreId or genreSubId. A non-root ID matches titleKana using that genre’s taxonomy key.
Title, reading, or edition name
Release date from (inclusive, YYYY-MM-DD). Games without a release date are excluded.
Release date to (inclusive, YYYY-MM-DD). Games without a release date are excluded.
Attribute IDs or labels (AND)
Purchase place (substring, case-insensitive)
Minimum rating (1-5)
Maximum rating (1-5)
Purchase date from (inclusive)
Purchase date to (inclusive)
Purchase price from (JPY)
Purchase price to (JPY)
Asc or desc
Optional groups. Omit for default (game, purchase, attributes). [] returns core fields only (gameId, rating). game: title, platform, publisher, genre, releaseDate. purchase: buyDate, buyPrice, buyPlace. attributes: [{id,label,custom}]. userLinks: user-registered URLs. memo: note text. latestPlay: hasPlayRecord/playId/status/hasHistory (requires play:read); hasPlayRecord: false only means no record was created, so it is not a backlog or never-played flag — read getPlayRecords(statuses:[“PLANNED”]) for games the user means to play. timestamps: createdAt, updatedAt. fields: [“memo”] does not add the default groups. game caps the page at 100; userLinks caps at 50. Keep filters, sort, fields, and limit fixed while paging.
Responses
Section titled “ Responses ”Tool result JSON (no MCP envelope). Delete previews also return 200 with confirmToken.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "items": [ { "latestPlay": { "status": "PLANNED" } } ]}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"}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
