コンテンツにスキップ

プレイ記録の一覧

POST
/rest/v1/getPlayRecords
curl --request POST \
--url https://game.retrogather.com/rest/v1/getPlayRecords \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "statuses": [ "PLANNED" ], "platformIds": [ 1 ], "genreId": 1, "title": "example", "releaseDateFrom": "2026-04-15", "releaseDateTo": "2026-04-15", "attributes": [ "example" ], "consoleIds": [ "example" ], "playStartDateFrom": "2026-04-15", "playStartDateTo": "2026-04-15", "playEndDateFrom": "2026-04-15", "playEndDateTo": "2026-04-15", "clearTargetDateFrom": "2026-04-15", "clearTargetDateTo": "2026-04-15", "clearTargetOverdue": "overdue", "totalPlayTimeFrom": 1, "totalPlayTimeTo": 1, "ratingFrom": 1, "ratingTo": 1, "sortBy": "playStartDate", "sortOrder": "asc", "page": 1, "limit": 1, "fields": [ "game" ] }'

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.

Plans: FREE / LIGHT / PREMIUM. Scopes: play:read. FREE: not available: consoleIds; narrowed: fields (see x-rgg-plan-differences).

Media typeapplication/json
object
statuses

Play statuses (OR)

Array<string>
Allowed values: PLANNED PLAYING PAUSED COMPLETED DROPPED
platformIds

Platform IDs (OR)

Array<integer>
<= 10 items
genreId

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.

integer
>= 1
title

Title, reading, or edition name

string
<= 30 characters
releaseDateFrom

Release date from (inclusive, YYYY-MM-DD). Games without a release date are excluded.

string format: date
releaseDateTo

Release date to (inclusive, YYYY-MM-DD). Games without a release date are excluded.

string format: date
attributes

Attribute IDs or labels (AND)

Array<string>
<= 5 items
consoleIds

Played console IDs (OR) (LIGHT+)

Array<string>
<= 5 items
playStartDateFrom

YYYY-MM-DD

string format: date
playStartDateTo

YYYY-MM-DD

string format: date
playEndDateFrom

YYYY-MM-DD

string format: date
playEndDateTo

YYYY-MM-DD

string format: date
clearTargetDateFrom

YYYY-MM-DD

string format: date
clearTargetDateTo

YYYY-MM-DD

string format: date
clearTargetOverdue

Overdue: unfinished (PLANNED/PLAYING/PAUSED) with clearTargetDate before today. COMPLETED/DROPPED are never overdue.

string
Allowed values: overdue not_overdue
totalPlayTimeFrom

Total play time from (minutes)

integer
totalPlayTimeTo

Total play time to (minutes)

integer
ratingFrom

Minimum rating (1-5)

integer
>= 1 <= 5
ratingTo

Maximum rating (1-5)

integer
>= 1 <= 5
sortBy
string
Allowed values: playStartDate playEndDate clearTargetDate title totalPlayTime rating updatedAt
sortOrder

Asc or desc

string
Allowed values: asc desc
page
integer
>= 1
limit
integer
>= 1 <= 200
fields

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)

Array<string>
Allowed values: game console goal attributes userLinks memo timestamps

Tool result JSON (no MCP envelope). Delete previews also return 200 with confirmToken.

Media typeapplication/json
Any of:
object
items
required
Array<object>
object
playId
required
string
gameId
required
integer
status
string
Allowed values: PLANNED PLAYING PAUSED COMPLETED DROPPED
playStartDate
string
playEndDate
string
totalPlayTime
integer
rating
integer
hasHistory
boolean
clearTargetDate
string
createdAt
string
updatedAt
string
attributes
Array<object>
object
id
required
string
label
string
custom
boolean
key
additional properties
any
userLinks
Array<object>
object
name
string
url
string
key
additional properties
any
memo
string
game
object
gameId
required
integer
title
string
titleEn
Array<string>
platform
object
platformId
required
integer
name
string
key
additional properties
any
publisher
object
companyId
required
integer
name
string
key
additional properties
any
genre
object
genreId
required
integer
name
string
key
additional properties
any
genreSub
object
genreId
required
integer
name
string
key
additional properties
any
releaseDate
string
custom
boolean
editions
Array<object>
object
gameEditionId
integer
title
string
modelNumber
Array<string>
releaseDate
string
price
number
janCode
string
key
additional properties
any
specs
object
modelNumber
Array<string>
price
number
janCode
string
key
additional properties
any
key
additional properties
any
console
object
consoleId
required
string
name
string
key
additional properties
any
isLatest
boolean
consoleId
string
key
additional properties
any
page
required
integer
returnedCount
required
integer
totalCount
required
integer
hasMore
required
boolean
effectiveLimit
integer
limitReduced
boolean
limitReason
string
key
additional properties
any
Example
{
"items": [
{
"status": "PLANNED"
}
]
}

Invalid_input (arguments, broken JSON body)

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
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

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
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

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
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

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
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.

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"retryable": true,
"retryAfterSec": 1,
"requestId": "example",
"resetAt": "example",
"remaining": 1,
"scopes": [
"example"
],
"upgradeUrl": "example"
}
Retry-After
integer

Seconds

Unexpected server failure. Retrying the same call will not help.

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
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.

Media typeapplication/json

Entry errors (auth, routing, quota) use error; tool errors use code and message. Check retryable when present.

object
error
string
code
string
message
string
retryable
boolean
retryAfterSec
integer
requestId
string
resetAt
string
remaining
integer
scopes
Array<string>
upgradeUrl
string
key
additional properties
any
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"retryable": true,
"retryAfterSec": 1,
"requestId": "example",
"resetAt": "example",
"remaining": 1,
"scopes": [
"example"
],
"upgradeUrl": "example"
}
Retry-After
integer

Seconds