Take Midu Integrate into your Agent
MCP, RSS, API ThreeAll methods read the same data: Top Deals, Trending, Midu Daily, Weekly, and Monthly. Just pick one based on the tool you use. All are anonymous read-only, no registration or API key required.
Anonymous GET, ready to use
No token needed; browser cross-origin requests, curl, and default HTTP clients in any language can call it directly. The path is /api/v1, and fields and error codes are as OpenAPI shall prevail.
curl --compressed 'https://midu.si/api/v1/items?mode=selected&window=24h&limit=20'Filter by category
Add to the news request category, only the corresponding category is used; if omitted, all categories are included. Returned items’ category also use the values in the table below.
| Category | Request Parameters |
|---|---|
| AI Funding | category=ai |
| Fintech | category=fintech |
| Enterprise Software | category=enterprise |
| Healthcare | category=health |
| Robotics/Hardware | category=robotics |
| Climate/Energy | category=climate |
| Consumer | category=consumer |
| Crypto/Web3 | category=crypto |
| Other Funding | category=industry |
Uses less, and is faster
- 01Enable Compression
curl add
--compressed, other clients enable gzip or br. After JSON compression it’s only 1/4 to 1/8 of the original size. - 02Include ETag
Save the ETag from the response and send it next time
If-None-Match; return 304 when content is unchanged, without sending the body. - 03Fetch by cadence
News and trending updated as often as once a minute; Midu Daily daily at 00:00 UTC fetch once after; fetch once after the Weekly and Monthly are published; when paging back, stop once you reach an existing item.
How often content changes: new items come in throughout the day, Top Deals change a few to dozens of times daily, Midu Daily daily at 00:00 UTC, Weekly every Monday at 02:00 UTC, Monthly at 02:30 UTC on the 1st of each month, one issue each.
API overview
| Path | What it’s for | How often to fetch |
|---|---|---|
| News | ||
/api/v1/items | Top Deals or all news from the last 7 days, filterable by category, time window, and keyword | As fast as once per minute |
| Trending & Stories | ||
/api/v1/hot-topics | Current Trending Top 10 | As fast as once per minute |
/api/v1/stories/{publicId} | A story’s report timeline, AI summary, and related stories | when needed |
| Daily | ||
/api/v1/dailies/latest | Latest Midu Daily | daily at 00:00 UTC the next time |
/api/v1/dailies/{date} | Midu Daily for a specified date; retractions will remove citations | Validate ETag after cache expires and before use |
/api/v1/dailies | Midu Daily Date Index | Once a day |
| Weekly and Monthly | ||
/api/v1/weeklies/latest | Latest Weekly: headlines, overview, and the week’s highlights, organized by section | every Monday at 02:00 UTC the next time |
/api/v1/weeklies/{week} | Specify a week, ISO week e.g. 2026-W39; retractions will remove citations | Validate ETag after cache expires and before use |
/api/v1/weeklies | Weekly Index | Once a week |
/api/v1/monthlies/latest | Latest Monthly | at 02:30 UTC on the 1st of each month the next time |
/api/v1/monthlies/{month} | Specify a month, e.g. 2026-09 | Validate ETag after cache expires and before use |
/api/v1/monthlies | Monthly Index | Once a month |
| For AI Assistants | ||
/api/v1/agent | Usage instructions for Agents; the listed URLs return organized Chinese Markdown | when needed |
| Full Top Deals sync | ||
/api/v1/selected/snapshot | All current Top Deals, paginated to get all at once | Only the first time |
/api/v1/selected/changes | additions, modifications, and removals after | Every few minutes |
Common Usage
# First time: save the ETag from the response headers
curl --compressed -i 'https://midu.si/api/v1/items?mode=selected&window=24h&limit=20'
# Then at most once a minute, sending the ETag; 304 means nothing changed
curl --compressed -i -H 'If-None-Match: <the previous ETag>' 'https://midu.si/api/v1/items?mode=selected&window=24h&limit=20'When you need to page back, set page.nextCursor Pass it back as a cursor; stop when you reach an existing item, don’t re-fetch the last 7 days every time.
What to do if something goes wrong
- 400
- Invalid parameters: fix according to OpenAPI and the returned code, do not automatically switch to a broader query. If cursor is invalid or slides out of the time window, return invalid_cursor and restart from the first page.
- 409
- snapshot_required: the incremental update can’t be safely resumed; fetch a full snapshot again.
- 429
- Too many requests: wait according to Retry-After; do not retry concurrently.
- 5xx
- Exponential backoff, use the last successful result first; public service does not promise an SLA.
Anonymous access does not mean all uses are permitted, seeUsage Rules.
Subscribe to the newsletters
Free, by email. No account needed. Pick one or both.
No spam. Unsubscribe anytime by emailing team@midu.si. Want alerts and full data? Sign up free (separate from the newsletter). Privacy.
Not investment advice. Midu summarizes public reports and SEC filings for information only. · Free API · Pricing