Plug GameAI HOT into your agent
MCP, RSS and API: three ways to the same data — picks, the hot list, and the daily, weekly and monthly reports. Choose whichever fits your tools. Everything is anonymous and read-only: no sign-up, no API key.
Anonymous GET, ready to use
No token. Call it straight from a browser (cross-origin is allowed), with curl or with any language's default HTTP client. Paths live under /api/v1, and OpenAPI is the reference for fields and error codes. Add lang=en for English text.
curl --compressed 'https://gameaihot.top/api/v1/items?mode=selected&window=24h&limit=20&lang=en'Lighter and faster
- 01Turn on compression
Add
--compressedto curl, or enable gzip or br in other clients. Compressed JSON is 1/4 to 1/8 of its original size. - 02Send the ETag
Save the ETag from each response and send it back as
If-None-Match; when nothing has changed you get a 304 with no body. - 03Fetch at the right pace
News and hot stories at most once a minute; the daily brief once after it's out, weeklies and monthlies once after they're published; when paging back, stop at the first item you already have.
How often things change: new items arrive throughout the day, picks change a few to dozens of times a day, and the daily brief comes out at 08:00 every day, the weekly on Mondays at 10:00 and the monthly on the 1st at 10:30 (all UTC+8).
Endpoints
| Path | What it's for | How often |
|---|---|---|
| News | ||
/api/v1/items | Picks, or all news from the last 7 days; filter by category, time window or keyword | At most once a minute |
| Hot list and stories | ||
/api/v1/hot-topics | Top 10 on the current hot list | At most once a minute |
/api/v1/stories/{publicId} | A story's coverage timeline, AI summary and related stories | As needed |
| Daily brief | ||
/api/v1/dailies/latest | The latest daily brief | Once a day, after 08:00 (UTC+8) |
/api/v1/dailies/{date} | The daily brief for a given date; withdrawn items are removed from it | Revalidate the ETag once your cache expires |
/api/v1/dailies | Index of daily brief dates | Once a day |
| Weekly and monthly | ||
/api/v1/weeklies/latest | The latest weekly: lead story, overview and the week's key stories, by section | Once a week, after Monday 10:00 (UTC+8) |
/api/v1/weeklies/{week} | A given week, as an ISO week like 2026-W39; withdrawn items are removed from it | Revalidate the ETag once your cache expires |
/api/v1/weeklies | Index of weeklies | Once a week |
/api/v1/monthlies/latest | The latest monthly | Once a month, after 10:30 on the 1st (UTC+8) |
/api/v1/monthlies/{month} | A given month, like 2026-09 | Revalidate the ETag once your cache expires |
/api/v1/monthlies | Index of monthlies | Once a month |
| For AI assistants | ||
/api/v1/agent | The guide for agents; the addresses it lists return ready-to-read Markdown | As needed |
| Full picks sync | ||
/api/v1/selected/snapshot | Every current pick, paged until you have them all | First time only |
/api/v1/selected/changes | Additions, edits and removals since then | Every few minutes |
Common recipes
# First time: save the ETag from the response headers
curl --compressed -i 'https://gameaihot.top/api/v1/items?mode=selected&window=24h&limit=20&lang=en'
# Then at most once a minute, with the ETag; a 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <last ETag>' 'https://gameaihot.top/api/v1/items?mode=selected&window=24h&limit=20&lang=en'To page back, pass page.nextCursor back as cursor and stop at the first item you already have; don't re-read all 7 days every time.
When something goes wrong
- 400
- Bad parameters: fix them using OpenAPI and the returned code; don't fall back to a broader query automatically. A cursor that is invalid or has slid out of the time window returns invalid_cursor; start again from the first page.
- 409
- snapshot_required: changes can't be resumed safely; take a fresh full snapshot.
- 429
- Too many requests: wait as Retry-After says; don't retry in parallel.
- 5xx
- Back off exponentially and use your last good result meanwhile; the public service comes with no SLA.
Anonymous access doesn't mean every use is permitted; see the Terms of Use.