Connect AI Wire to your agent
MCP, RSS, API — three ways to read the exact same data: selected picks, trending stories, the daily digest, weekly roundup, and monthly wrap-up. Pick whichever fits your tooling. All of it is anonymous and read-only — no sign-up, no API key.
Anonymous GET requests, ready to use
No token needed — cross-origin browser calls, curl, and the default HTTP client in any language all work out of the box. The base path is /api/v1; fields and error codes follow the OpenAPI spec.
curl --compressed 'https://aiwire.brablore.com/api/v1/items?mode=selected&window=24h&limit=20'Use it lightly, and it's faster
- 01Turn on compression
Add
--compressedto curl, or enable gzip/br in other clients. Compressed JSON is a quarter to an eighth the size. - 02Send the ETag
Save the ETag from the response, then send it back as
If-None-Matchnext time — if nothing's changed, you get a 304 with no body. - 03Match the pace
News and trending topics: once a minute at most. Daily digest: one fetch after every day at 08:00. Weekly and monthly: one fetch after each issue goes out. When paging back through history, stop once you reach an item you already have.
How often content changes: new stories arrive all day long; selected picks update anywhere from a few times to several dozen times a day; the daily digest goes out every day at 08:00, the weekly roundup every Monday at 10:00, and the monthly wrap-up on the 1st of each month at 10:30 (Beijing time).
Endpoint overview
| Path | What it's for | How often to fetch |
|---|---|---|
| News | ||
/api/v1/items | Selected picks or everything from the last 7 days, filterable by category, time window, and keyword | Once a minute at most |
| Trending & Stories | ||
/api/v1/hot-topics | Current top 10 trending stories | Once a minute at most |
/api/v1/stories/{publicId} | A story's coverage timeline, AI summary, and related stories | As needed |
| Daily Digest | ||
/api/v1/dailies/latest | The latest daily digest | Once, after every day at 08:00 |
/api/v1/dailies/{date} | A specific date's digest; retracted items are removed from it | Verify with ETag before reuse once the cache expires |
/api/v1/dailies | Index of digest dates | Once a day |
| Weekly & Monthly | ||
/api/v1/weeklies/latest | The latest weekly roundup: lead story, overview, and the week's highlights, grouped by section | Once, after every Monday at 10:00 |
/api/v1/weeklies/{week} | A specific week, ISO week format like 2026-W39; retracted items are removed from it | Verify with ETag before reuse once the cache expires |
/api/v1/weeklies | Index of weekly issues | Once a week |
/api/v1/monthlies/latest | The latest monthly wrap-up | Once, after on the 1st of each month at 10:30 |
/api/v1/monthlies/{month} | A specific month, like 2026-09 | Verify with ETag before reuse once the cache expires |
/api/v1/monthlies | Index of monthly issues | Once a month |
| For AI Assistants | ||
/api/v1/agent | Usage notes for agents — every address listed here returns clean, ready-to-read Markdown | As needed |
| Full Selected Sync | ||
/api/v1/selected/snapshot | All current selected picks, paginated for a full one-time pull | Only the first time |
/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://aiwire.brablore.com/api/v1/items?mode=selected&window=24h&limit=20'
# After that, once a minute at most, with the ETag attached — a 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <the previous ETag>' 'https://aiwire.brablore.com/api/v1/items?mode=selected&window=24h&limit=20'When paging back through history, pass page.nextCursor back as the cursor, and stop once you reach an item you already have — don't re-walk the full 7 days every time.
What to do when something goes wrong
- 400
- Bad parameters: fix them per OpenAPI and the returned code — don't automatically fall back to a broader query. An invalid or expired cursor returns invalid_cursor; start over from the first page.
- 409
- snapshot_required: the incremental feed can't safely continue — take a fresh full snapshot.
- 429
- Too many requests: wait as long as Retry-After says, and don't retry concurrently.
- 5xx
- Back off exponentially and fall back to your last successful result — this is a public service with no SLA guarantee.
Being able to call this anonymously doesn't mean every use is permitted — see Terms of Use.