Connect Gameshot to your agent
Skill, MCP, RSS, and API read the same data: the selection, hot topics, and the daily, weekly, and monthly. Pick the one that fits your tool. All of them are anonymous and read-only. No account, and no API key.
Anonymous GET. No token.
No token. A browser, curl, and a language's default HTTP client can call it directly. Paths live under /api/v1. Fields and error codes follow OpenAPI.
curl --compressed 'https://gameshot.games/api/v1/items?mode=selected&window=24h&limit=20'Cheaper, and faster
- 01Turn on compression
Add
--compressedto curl. Other clients should accept gzip or br. Compressed JSON is about a quarter to an eighth of the raw size. - 02Send the ETag
Keep the ETag from the response and send it next time as
If-None-Match. An unchanged body comes back as 304, with no payload. - 03Poll on a cadence
Items and hot topics at most once a minute. The daily once after 06:30, and the weekly and monthly once after they publish. When paging backwards, stop at an item you already have.
How often it changes: new items arrive through the day, the selection changes a handful of times to a few dozen times a day, and there is one daily at 06:30, one weekly on Monday at 10:00, and one monthly on the 1st at 10:30, Beijing time.
Endpoints
| Path | What it is for | How often |
|---|---|---|
| Items | ||
/api/v1/items | Selected items, or all public updates from the last 7 days. Filter by category, window, or keyword. | At most once a minute |
| Hot topics and events | ||
/api/v1/hot-topics | The current hot list, top 10 | At most once a minute |
/api/v1/stories/{publicId} | One event: the report timeline, the running digest, and related events | When you need it |
| Daily | ||
/api/v1/dailies/latest | The latest daily | Once after 06:30 |
/api/v1/dailies/{date} | The daily for a date. A withdrawal drops the citation. | Revalidate the ETag before using an expired cache |
/api/v1/dailies | An index of daily dates | Once a day |
| Weekly and monthly | ||
/api/v1/weeklies/latest | The latest weekly: lead, overview, and the week's stories by section | Once after Monday 10:00 |
/api/v1/weeklies/{week} | One ISO week, such as 2026-W39. A withdrawal drops the citation. | Revalidate the ETag before using an expired cache |
/api/v1/weeklies | An index of weeklies | Once a week |
/api/v1/monthlies/latest | The latest monthly | Once after the 1st at 10:30 |
/api/v1/monthlies/{month} | One month, such as 2026-09 | Revalidate the ETag before using an expired cache |
/api/v1/monthlies | An index of monthlies | Once a month |
| For an agent | ||
/api/v1/agent | The guide for an agent. The listed addresses return prepared Markdown. | When you need it |
| Full selection sync | ||
/api/v1/selected/snapshot | The whole current selection, paged until you have it all | Only the first time |
/api/v1/selected/changes | Later additions, edits, and items dropped from the selection | Every few minutes |
Common uses
# First time: save the ETag response header
curl --compressed -i 'https://gameshot.games/api/v1/items?mode=selected&window=24h&limit=20'
# After that, at most once a minute, send the ETag. 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <previous ETag>' 'https://gameshot.games/api/v1/items?mode=selected&window=24h&limit=20'To page backwards, send page.nextCursor as cursor and stop when you reach an item you already have. Do not walk the whole 7 days again.
Errors and recovery
- 400
- A bad parameter. Fix it from the OpenAPI spec and the returned code. Do not widen the query automatically. An invalid cursor, or one outside the window, returns invalid_cursor. Start again from the first page.
- 409
- snapshot_required: the incremental cursor cannot continue safely. Take a full snapshot again.
- 429
- Too many requests. Wait for Retry-After. Do not retry in parallel.
- 5xx
- Back off, and keep using the last successful result. The public service does not promise an SLA.
An anonymous call is not a licence for every use. See the terms.