ゲームを検索(同定)
const url = 'https://game.retrogather.com/rest/v1/searchGames';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/searchGames \ --header 'Authorization: Bearer <token>'Games / ゲーム検索: find games by title, nickname, JAN, model number, or external id. RGG holds no game content, walkthroughs or edition differences: read and cite externalLinks pages for those, not memory. Requires one identifying term. Use browseGames (PREMIUM) to explore by conditions only. Limit default 10. Ordered by match strength (identifier, exact title, alias, prefix, partial), then release date. No paging: when hasMore, narrow with platformIds or releaseDateFrom/To; platformCounts shows where the matches are. If a title returns nothing, retry with a short hiragana reading or abbreviation before concluding it is outside coverage. Each item has matchedBy: janCode / modelNumber / externalId / gameId = identifier; title / titleEn = official title; alias = hiragana reading or nickname, not the official title; confirm with the user. exact: true when the whole query equals the matched value. edition: true when an edition’s JAN or model number matched, so specs may differ from the query.
Arrays are comma-separated. Percent-encode query values; Japanese values are easier to send with POST JSON. Object arguments (externalId) are accepted only with POST JSON. Plans: FREE / LIGHT / PREMIUM. Scopes: games:read.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Title search. Partial match on the title, its hiragana reading (よみ, no spaces), English title and common abbreviations (e.g. どらくえ3, DQ, FE せいせん). Numbers are unified (III = 3). Spaces split terms (AND).
Partial match on model numbers, including edition model numbers. Hyphens and case are ignored.
YYYY-MM-DD inclusive
YYYY-MM-DD inclusive
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
JanCode / modelNumber / externalId / gameId: identifier. title / titleEn: official title. alias: hiragana reading or nickname, not the official title. Multi-term queries report the weakest field.
True when the whole query equals the matched value. For alias it means the query equals a reading or nickname, not the official title.
True when an edition’s JAN or model number matched; specs may differ from the query.
object
Only when hasMore is true. Matches per platform across all results (most first, up to 10). searchGames has no paging; pass platformIds to narrow.
object
Only when hasMore is true. How to find games not in this result.
object
object
object
Example
{ "items": [ { "matchedBy": "janCode" } ]}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
