プレイ記録の一覧
const url = 'https://game.retrogather.com/rest/v1/getPlayRecords?clearTargetOverdue=overdue&sortBy=playStartDate&sortOrder=asc';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://game.retrogather.com/rest/v1/getPlayRecords?clearTargetOverdue=overdue&sortBy=playStartDate&sortOrder=asc' \ --header 'Authorization: Bearer <token>'Play records / プレイ記録: what the user is playing, cleared, dropped or has in the backlog; latest record per game with filters and page/limit. Request memo in fields when needed. Use getGamePlayHistory for PREMIUM past cycles; getPlayLogs(playId) for logs. PLANNED = the backlog the user means to play, so statuses:[“PLANNED”] answers “what is piled up” and “what to play next”; it is not a never-played flag.
Arrays are comma-separated. Percent-encode query values; Japanese values are easier to send with POST JSON. Plans: FREE / LIGHT / PREMIUM. Scopes: play:read. FREE: not available: consoleIds; narrowed: fields (see x-rgg-plan-differences).
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Play statuses (OR)
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)
Played console IDs (OR) (LIGHT+)
YYYY-MM-DD
YYYY-MM-DD
YYYY-MM-DD
YYYY-MM-DD
YYYY-MM-DD
YYYY-MM-DD
Overdue: unfinished (PLANNED/PLAYING/PAUSED) with clearTargetDate before today. COMPLETED/DROPPED are never overdue.
Total play time from (minutes)
Total play time to (minutes)
Minimum rating (1-5)
Maximum rating (1-5)
Asc or desc
Optional groups. Omit for default (game, console, goal). FREE default is game+goal. [] returns core fields only (playId, gameId, status, playStartDate, playEndDate, totalPlayTime in minutes, rating, hasHistory). game: title/platform/publisher/genre/releaseDate. console: {consoleId,name}. goal: clearTargetDate. attributes: [{id,label,custom}]. userLinks: strategy URLs. memo: note text. 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. PLANNED = the backlog the user means to play; it does not mean never played. (LIGHT+: console)
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": [ { "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
