Skip to content
AGENT ACCESS

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.

OperationalVersion 1.0.0Anonymous & read-only · No key needed
REST API · 1.0.0

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.

Your first request
curl --compressed 'https://aiwire.brablore.com/api/v1/items?mode=selected&window=24h&limit=20'

Use it lightly, and it's faster

  1. 01
    Turn on compression

    Add --compressed to curl, or enable gzip/br in other clients. Compressed JSON is a quarter to an eighth the size.

  2. 02
    Send the ETag

    Save the ETag from the response, then send it back as If-None-Match next time — if nothing's changed, you get a 304 with no body.

  3. 03
    Match 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

PathWhat it's forHow often to fetch
News
/api/v1/itemsSelected picks or everything from the last 7 days, filterable by category, time window, and keywordOnce a minute at most
Trending & Stories
/api/v1/hot-topicsCurrent top 10 trending storiesOnce a minute at most
/api/v1/stories/{publicId}A story's coverage timeline, AI summary, and related storiesAs needed
Daily Digest
/api/v1/dailies/latestThe latest daily digestOnce, after every day at 08:00
/api/v1/dailies/{date}A specific date's digest; retracted items are removed from itVerify with ETag before reuse once the cache expires
/api/v1/dailiesIndex of digest datesOnce a day
Weekly & Monthly
/api/v1/weeklies/latestThe latest weekly roundup: lead story, overview, and the week's highlights, grouped by sectionOnce, after every Monday at 10:00
/api/v1/weeklies/{week}A specific week, ISO week format like 2026-W39; retracted items are removed from itVerify with ETag before reuse once the cache expires
/api/v1/weekliesIndex of weekly issuesOnce a week
/api/v1/monthlies/latestThe latest monthly wrap-upOnce, after on the 1st of each month at 10:30
/api/v1/monthlies/{month}A specific month, like 2026-09Verify with ETag before reuse once the cache expires
/api/v1/monthliesIndex of monthly issuesOnce a month
For AI Assistants
/api/v1/agentUsage notes for agents — every address listed here returns clean, ready-to-read MarkdownAs needed
Full Selected Sync
/api/v1/selected/snapshotAll current selected picks, paginated for a full one-time pullOnly the first time
/api/v1/selected/changesAdditions, edits, and removals since thenEvery few minutes

Common recipes

bash
# 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.