Connect StarHOT to your tools
Skill, MCP, RSS and API all give you the same stories: featured picks, trending, and the daily, weekly and monthly briefs. Pick whichever fits your tools — no sign-up and no API key.
Anonymous GET, ready to use
No token needed; browsers, curl and any HTTP client can call it directly. The base path is /api/v1; fields and error codes are defined in the OpenAPI .
curl --compressed 'https://www.starhot.space/api/v1/items?mode=selected&window=24h&limit=20'Lighter and faster
- 01Turn on compression
Add
--compressedto curl, or enable gzip/br in your client. Compressed JSON is 1/4 to 1/8 the size. - 02Send the ETag
Save the ETag and send it back as
If-None-Match; unchanged content returns a 304 with no body. - 03Poll at the right pace
Stories and trending at most once a minute; briefs once after each issue; stop paging back when you reach an item you already have.
New stories arrive all day; featured picks change several to dozens of times a day; the daily, weekly and monthly briefs come out on their schedule.
Endpoints
| Path | What it’s for | How often |
|---|---|---|
| Stories | ||
/api/v1/items | Featured or all updates from the last 7 days, filterable by category, window and keyword | At most once a minute |
| Trending and stories | ||
/api/v1/hot-topics | The current trending top 10 | At most once a minute |
/api/v1/stories/{publicId} | A story’s report timeline, AI overview and related stories | As needed |
| Daily brief | ||
/api/v1/dailies/latest | The latest daily brief | Once after each issue |
/api/v1/dailies/{date} | A given day’s brief; withdrawn items are removed | Revalidate with the ETag once your cache expires |
/api/v1/dailies | Daily index | Once a day |
| Weekly and monthly | ||
/api/v1/weeklies/latest | The latest weekly round-up, by section | Once after each issue |
/api/v1/weeklies/{week} | A given ISO week, e.g. 2026-W39; withdrawn items are removed | Revalidate with the ETag once your cache expires |
/api/v1/weeklies | Weekly index | Once a week |
/api/v1/monthlies/latest | The latest monthly round-up | Once after each issue |
/api/v1/monthlies/{month} | A given month, e.g. 2026-09 | Revalidate with the ETag once your cache expires |
/api/v1/monthlies | Monthly index | Once a month |
| For AI assistants | ||
/api/v1/agent | Instructions for agents, with ready-to-read Markdown | As needed |
| Full featured sync | ||
/api/v1/selected/snapshot | All current featured stories, paged in one pass | First time only |
/api/v1/selected/changes | Additions, edits and removals since then | Every few minutes |
Common recipes
# First call: save the ETag header
curl --compressed -i 'https://www.starhot.space/api/v1/items?mode=selected&window=24h&limit=20'
# Then at most once a minute, send the ETag; 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <last ETag>' 'https://www.starhot.space/api/v1/items?mode=selected&window=24h&limit=20'To page back, pass page.nextCursor back as the cursor, and stop when you reach an item you already have — don’t re-read all 7 days each time.
When something goes wrong
- 400
- Bad parameters: fix them using the OpenAPI spec and the returned code — don’t silently widen the query. An invalid or expired cursor returns invalid_cursor; start again from page one.
- 409
- snapshot_required: changes can’t safely continue — fetch a full snapshot again.
- 429
- Too many requests: wait for Retry-After and don’t retry in parallel.
- 5xx
- Back off exponentially and use your last good result; the public service has no SLA.
Anonymous access doesn’t grant every use — see the Terms of use.