Gameshot Items API
The Items API from Gameshot — 1 operation(s) for items.
The Items API from Gameshot — 1 operation(s) for items.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gameshot-games:gameshot-games-items-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Gameshot Games Items API
version: 3.0.0
termsOfService: https://gameshot.games/terms
description: 'Operations tagged Items across 2 of this provider''s published API definitions: gameshot-games-openapi.json, openapi-v1.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://gameshot.games
tags:
- name: Items
paths:
/api/v1/items:
get:
operationId: items
summary: List recent public AI items
description: 'Start here for feeds, widgets and ''what is new'' views. Covers the last 7 days only. Send If-None-Match and you get a 304 with an empty body whenever nothing changed. To follow new items, page back with cursor only until you reach an id you already have. Do not use this to maintain a complete local copy of the selected set: it is windowed, so anything older than 7 days silently falls out. Use /api/v1/selected/snapshot plus /api/v1/selected/changes for that.'
parameters:
- $ref: '#/components/parameters/ActorUserAgent'
- $ref: '#/components/parameters/IfNoneMatch'
- name: mode
in: query
schema:
type: string
enum:
- selected
- all
default: selected
- name: category
in: query
schema:
type: string
examples:
- release
- industry
- leak
- review
- esports
- deal
description: 'Current values: release, industry, leak, review, esports, deal.'
- name: window
in: query
schema:
type: string
enum:
- 24h
- 7d
default: 7d
- name: by
in: query
schema:
type: string
enum:
- timeline
- published
default: timeline
description: 'Which timestamp defines the window and the ordering. ''timeline'' (default) matches what the website shows: items back-filled more than 72h after publication keep their original publication date, everything else uses the time the site received it, so slow-pushing sources still land inside a 24h window. ''published'' uses the third-party publication time only, which drops those slow pushes out of short windows. Both timestamps are always returned on every item as publishedAt and discoveredAt.'
- name: q
in: query
schema:
type: string
minLength: 2
maxLength: 200
description: Leading and trailing whitespace is removed before validation; the remaining value must contain 2 to 200 Unicode code points.
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 50
- name: cursor
in: query
schema:
type: string
description: 'Opaque, query-bound keyset cursor for the rolling window. It carries no issue time and does not expire on a timer, but the window keeps moving: once the cursor''s own anchor has dropped out of the requested 24h or 7d window it is rejected with invalid_cursor, so restart the query from the first page instead of persisting a cursor across days. Older rows may also naturally leave the window between requests. Use selected snapshot + changes for an exact mirror.'
responses:
'200':
description: OK
headers:
ETag:
schema:
type: string
Cache-Control:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ItemsResponse'
'304':
description: Not Modified
headers:
ETag:
schema:
type: string
Cache-Control:
schema:
type: string
'400':
description: Machine-readable problem response.
headers:
X-Request-Id:
description: Support correlation identifier for this failed request.
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'403':
description: Machine-readable problem response.
headers:
X-Request-Id:
description: Support correlation identifier for this failed request.
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'405':
description: Machine-readable problem response.
headers:
X-Request-Id:
description: Support correlation identifier for this failed request.
schema:
type: string
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'429':
description: Machine-readable problem response.
headers:
X-Request-Id:
description: Support correlation identifier for this failed request.
schema:
type: string
Retry-After:
description: Minimum number of seconds to wait before retrying.
schema:
type: integer
minimum: 1
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
'503':
description: Machine-readable problem response.
headers:
X-Request-Id:
description: Support correlation identifier for this failed request.
schema:
type: string
Retry-After:
description: Minimum number of seconds to wait before retrying.
schema:
type: integer
minimum: 1
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
tags:
- Items
servers:
- url: https://gameshot.games
components:
parameters:
ActorUserAgent:
name: User-Agent
in: header
required: false
description: The client's normal User-Agent (optional; any value works).
schema:
type: string
maxLength: 2048
example: my-reader/1.0
IfNoneMatch:
name: If-None-Match
in: header
required: false
description: Previously received ETag for this exact URL. A match returns 304 without a response body.
schema:
type: string
schemas:
Page:
type: object
required:
- count
- hasMore
- nextCursor
properties:
count:
type: integer
minimum: 0
description: Number of records in this page.
hasMore:
type: boolean
nextCursor:
type:
- string
- 'null'
description: Opaque; only reuse with the same query.
Attribution:
type: object
description: Machine-readable Gameshot provenance for traceability. Retain it where technically feasible. Attribution alone is not authorization; see the public terms.
required:
- name
- url
properties:
name:
type: string
url:
type: string
format: uri
Problem:
type: object
required:
- type
- title
- status
- detail
- code
- requestId
properties:
type:
type: string
title:
type: string
status:
type: integer
detail:
type: string
code:
type: string
requestId:
type: string
Item:
type: object
required:
- id
- title
- originalTitle
- summary
- source
- links
- publishedAt
- discoveredAt
- category
- score
- selected
properties:
id:
type: string
title:
type: string
originalTitle:
type:
- string
- 'null'
summary:
type:
- string
- 'null'
source:
type: object
required:
- name
properties:
name:
type: string
links:
type: object
required:
- aihot
- original
properties:
aihot:
type: string
format: uri
original:
type: string
format: uri
publishedAt:
type:
- string
- 'null'
format: date-time
discoveredAt:
type: string
format: date-time
category:
type:
- string
- 'null'
examples:
- release
- industry
- leak
- review
- esports
- deal
description: 'Current values: release, industry, leak, review, esports, deal. Clients must tolerate future string values.'
score:
type:
- number
- 'null'
minimum: 0
maximum: 100
selected:
type: boolean
reason:
type:
- string
- 'null'
description: Reader-facing recommendation reason, the same text shown as 推荐理由 on the website. Always present on /api/v1/items; null when the item is not selected or has no reader-facing reason. Selected snapshot and changes do not include this field yet.
attribution:
$ref: '#/components/schemas/Attribution'
ItemsResponse:
type: object
required:
- schemaVersion
- query
- items
- page
properties:
schemaVersion:
const: 1
query:
type: object
required:
- mode
- category
- window
- q
- by
- ordering
properties:
mode:
type: string
enum:
- selected
- all
category:
type:
- string
- 'null'
examples:
- release
- industry
- leak
- review
- esports
- deal
description: 'Current values: release, industry, leak, review, esports, deal. Clients must tolerate future string values.'
window:
type: string
enum:
- 24h
- 7d
q:
type:
- string
- 'null'
minLength: 2
maxLength: 200
by:
type: string
enum:
- timeline
- published
ordering:
type: string
enum:
- timelineDesc
- publishedAtDesc
items:
type: array
items:
$ref: '#/components/schemas/Item'
page:
$ref: '#/components/schemas/Page'
externalDocs:
description: Machine-readable OpenAPI document
url: https://gameshot.games/openapi-v1.json
x-refined-from:
- gameshot-games-openapi.json
- openapi-v1.json