Connect iCreat AI News to your Agent
MCP, RSS, API access methods share the same featured stories, trends and reports. Choose one for your tools. All are anonymous and read only, with no account or API key required.
Anonymous GET requests, ready to use
No token required. Use cross-origin browser requests, curl or your language's HTTP client. The base path is /api/v1; fields and errors follow OpenAPI.
curl --compressed 'https://icreat.ai/ai-news/api/v1/items?mode=selected&window=24h&limit=20'Filter by category
Add category to request a category; omit it for all categories. The returned item's category also uses the values below.
| Category | Query parameter |
|---|---|
| AI models | category=ai-models |
| AI products | category=ai-products |
| Industry news | category=industry |
| Papers | category=paper |
| Tutorials | category=tip |
| Perspectives | category=opinion |
Reduce traffic and latency
- 01Enable compression
For curl, add
--compressed; enable gzip or br in other clients. Compressed JSON is typically one quarter to one eighth of its original size. - 02Use ETags
Save the response ETag and send
If-None-Matchon the next request. Unchanged content returns 304 with no body. - 03Poll at a sensible rate
Poll news and trends as often as once a minute. Fetch daily reports after 08:00, weekly reports on Mondays after 10:00, and monthly reports on day 1 after 10:30 (Beijing time). When paging back, stop at an item you already have.
New items arrive throughout the day, and featured items change several to dozens of times daily. Reports publish daily at 08:00, Mondays at 10:00, and on the first of each month at 10:30, all Beijing time.
Endpoint reference
| Path | Purpose | Polling interval |
|---|---|---|
| News | ||
/api/v1/items | Featured items or all updates from the past seven days, filterable by category, time window and keywords | As often as once a minute |
| Trending stories | ||
/api/v1/hot-topics | The current top ten trending stories | As often as once a minute |
/api/v1/stories/{publicId} | Coverage timeline, AI overview and related stories for one event | On demand |
| Daily | ||
/api/v1/dailies/latest | Latest daily report | Once after 08:00 each day |
/api/v1/dailies/{date} | Daily report for a specific date; withdrawn articles are removed | Validate the ETag after the cache expires and before using the response |
/api/v1/dailies | Daily report date index | Once a day |
| Weekly and monthly reports | ||
/api/v1/weeklies/latest | Latest weekly report, with a lead story, overview and key stories by section | Once after 10:00 every Monday |
/api/v1/weeklies/{week} | Weekly report for an ISO week such as 2026-W39; withdrawn articles are removed | Validate the ETag after the cache expires and before using the response |
/api/v1/weeklies | Weekly report index | Once a week |
/api/v1/monthlies/latest | Latest monthly report | Once after 10:30 on the first of each month |
/api/v1/monthlies/{month} | Monthly report for a specific month, such as 2026-09 | Validate the ETag after the cache expires and before using the response |
/api/v1/monthlies | Monthly report index | Once a month |
| For AI assistants | ||
/api/v1/agent | Agent guide with curated Chinese Markdown links | On demand |
| Full featured-content sync | ||
/api/v1/selected/snapshot | All currently featured items, fetched with pagination | Once for initial setup |
/api/v1/selected/changes | Subsequent additions, changes and removals | Every few minutes |
Common uses
# First, save the ETag from the response headers
curl --compressed -i 'https://icreat.ai/ai-news/api/v1/items?mode=selected&window=24h&limit=20'
# Then poll at most once a minute with the ETag; a 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <previous ETag>' 'https://icreat.ai/ai-news/api/v1/items?mode=selected&window=24h&limit=20'To paginate backwards, pass page.nextCursor as cursor. Stop when you reach a saved item, instead of repeatedly fetching all seven days.
Handling errors
- 400
- Invalid parameters: correct them using OpenAPI and the returned code. An invalid or expired cursor returns invalid_cursor; start again from the first page.
- 409
- snapshot_required: incremental sync cannot resume safely; fetch a new full snapshot.
- 429
- Too many requests: wait for Retry-After before retrying.
- 5xx
- Use exponential backoff and retain the last successful result. The public service has no SLA.
Anonymous access does not grant permission for every use. See Terms of use。