Skip to content
AGENTS

Bring NewProteinBase into your agent

MCP, RSS, API — three ways to read the same data: highlights, trending, daily, weekly and monthly. Pick the one your tool supports. All anonymous read-only; no signup and no API key.

Service healthyVersion 4.0.0Anonymous read-only · no key
REST API · 4.0.0

Anonymous GET, ready to use

No token needed; browsers across origins, curl, and the default HTTP client of any language can call it directly. Paths start with /api/v1; fields and error codes follow the OpenAPI spec.

First request
curl --compressed 'https://newproteinbase.com/api/v1/items?mode=selected&window=24h&limit=20'

Filter by category

Add category to an items request to get that category only; omit it to include every category. Items also return category using the values below.

CategoryParameters
Businesscategory=business
Fundingcategory=funding
Productscategory=products
Technologycategory=technology
Marketscategory=markets
Policycategory=policy
Opinioncategory=opinion

Cheaper and faster

  1. 01
    Use compression

    Add --compressed to curl, or enable gzip or br in other clients. Compressed JSON is 1/4 to 1/8 of its original size.

  2. 02
    Send the ETag

    Save the ETag from the response and send it as If-None-Match next time; when nothing changed you get a 304 with no body.

  3. 03
    Rate limits

    News and Trending at most once a minute; Daily once after Daily at 08:00, Weekly and Monthly once after each issue; when paging backwards, stop at the first item you already have.

How often content changes: new items arrive throughout the day, Highlights change from a few to a few dozen times a day, and Daily (Daily at 08:00), Weekly (Mondays at 10:00), and Monthly (1st of each month at 10:30) each come out once (Beijing time).

API overview

PathWhat it is forHow often to poll
News
/api/v1/itemsHighlights or the last 7 days of All updates; filter by category, time window, or keywordAt most once a minute
Trending & events
/api/v1/hot-topicsCurrent Trending top 10At most once a minute
/api/v1/stories/{publicId}Timeline, AI digest and related eventsOn demand
Daily
/api/v1/dailies/latestLatest dailyOnce after Daily at 08:00
/api/v1/dailies/{date}Daily for a given date; retractions remove the referenceRevalidate the ETag before use once the cache has expired
/api/v1/dailiesDaily archiveOnce a day
Weekly & monthly
/api/v1/weeklies/latestLatest Weekly: top story, overview, and the week's key items, grouped by sectionOnce after Mondays at 10:00
/api/v1/weeklies/{week}A given week, ISO week such as 2026-W39; retractions remove the referenceRevalidate the ETag before use once the cache has expired
/api/v1/weekliesWeekly archiveOnce a week
/api/v1/monthlies/latestLatest monthlyOnce after 1st of each month at 10:30
/api/v1/monthlies/{month}A given month, such as 2026-09Revalidate the ETag before use once the cache has expired
/api/v1/monthliesMonthly archiveOnce a month
For AI assistants
/api/v1/agentUsage notes for Agents; the listed URLs serve a prepared Markdown guideOn demand
Full Highlights sync
/api/v1/selected/snapshotThe current full set of Highlights, fetched in pagesFirst time only
/api/v1/selected/changesLater additions, edits, and removalsEvery few minutes

Common recipes

bash
# First call: save the ETag from the response headers
curl --compressed -i 'https://newproteinbase.com/api/v1/items?mode=selected&window=24h&limit=20'
# After that, at most once a minute, sending the ETag; a 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <ETag from last time>' 'https://newproteinbase.com/api/v1/items?mode=selected&window=24h&limit=20'

To page backwards, send page.nextCursor back as cursor and stop at the first item you already have; do not re-page through the last 7 days every time.

When something fails

400
Bad parameters: fix them according to the OpenAPI spec and the error code; do not silently widen the query. An invalid cursor, or one that has fallen out of the time window, returns invalid_cursor — start again from the first page.
409
snapshot_required: the incremental feed cannot be resumed safely; take a fresh full snapshot.
429
Too many requests: wait for Retry-After; do not retry concurrently.
5xx
Back off exponentially and keep using the last successful result; this public service makes no SLA commitment.

Being able to call anonymously does not mean every use is licensed; seeTerms of use.