Skip to main content
AGENT ACCESS

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.

Service operationalVersion 4.0.0Anonymous read-only · No Key required
REST API · 4.0.0

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.

First request
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.

CategoryRequest Parameters
AI Fundingcategory=ai
Fintechcategory=fintech
Enterprise Softwarecategory=enterprise
Healthcarecategory=health
Robotics/Hardwarecategory=robotics
Climate/Energycategory=climate
Consumercategory=consumer
Crypto/Web3category=crypto
Other Fundingcategory=industry

Uses less, and is faster

  1. 01
    Enable 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.

  2. 02
    Include 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.

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

PathWhat it’s forHow often to fetch
News
/api/v1/itemsTop Deals or all news from the last 7 days, filterable by category, time window, and keywordAs fast as once per minute
Trending & Stories
/api/v1/hot-topicsCurrent Trending Top 10As fast as once per minute
/api/v1/stories/{publicId}A story’s report timeline, AI summary, and related storieswhen needed
Daily
/api/v1/dailies/latestLatest Midu Dailydaily at 00:00 UTC the next time
/api/v1/dailies/{date}Midu Daily for a specified date; retractions will remove citationsValidate ETag after cache expires and before use
/api/v1/dailiesMidu Daily Date IndexOnce a day
Weekly and Monthly
/api/v1/weeklies/latestLatest Weekly: headlines, overview, and the week’s highlights, organized by sectionevery Monday at 02:00 UTC the next time
/api/v1/weeklies/{week}Specify a week, ISO week e.g. 2026-W39; retractions will remove citationsValidate ETag after cache expires and before use
/api/v1/weekliesWeekly IndexOnce a week
/api/v1/monthlies/latestLatest Monthlyat 02:30 UTC on the 1st of each month the next time
/api/v1/monthlies/{month}Specify a month, e.g. 2026-09Validate ETag after cache expires and before use
/api/v1/monthliesMonthly IndexOnce a month
For AI Assistants
/api/v1/agentUsage instructions for Agents; the listed URLs return organized Chinese Markdownwhen needed
Full Top Deals sync
/api/v1/selected/snapshotAll current Top Deals, paginated to get all at onceOnly the first time
/api/v1/selected/changesadditions, modifications, and removals afterEvery few minutes

Common Usage

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