# Get a weekly Medium stats and earnings report

> Medium has no story stats export. Get monthly views, reads, read ratio and earnings per story in one weekly report, compared with last month.

Source: https://cotlet.dev/integrations/medium-api-mcp-server/weekly-stats-report

Medium's Stats page shows one month at a time, and the numbers that matter for a single story sit on its own detailed stats page. Comparing 40 stories means 40 clicks and a spreadsheet.

Cotlet does it in your own Medium account with get\_account\_stats, list\_stories and get\_story\_stats, called by your AI agent, an n8n workflow or a script.

[Request access](https://cotlet.dev/app/signup?app=medium) [All Medium tools](https://cotlet.dev/integrations/medium-api-mcp-server)

Hosted · nothing to install or maintain

Official options

## Can Medium do this on its own?

Medium has no API for stats or earnings, old or new (checked 12 Oct 2026). The Stats pages and the Partner Program earnings dashboard show the numbers in the app, and the only CSV download they offer is the audience one on the Audience tab.

By hand

## How you do it in Medium today

1. Open the sidebar with the menu icon in the top left of Medium and click Stats, then stay on the Stories tab.
2. In the Monthly section, pick a month with the pill-shaped select to see presentations, views, reads, followers and subscribers for that month.
3. Sort the Lifetime list by views, reads or lifetime earnings, then click each story to open its detailed stats page with the Member read ratio and traffic sources.
4. For money, switch to the Partner Program earnings tab in Stats and read Earnings by story for the month.
5. Copy the numbers into a sheet by hand. Medium offers a CSV download only on the Audience page, so per-story numbers never leave the Stats screens on their own.

With an agent

## How to get a weekly Medium stats and earnings report

Prompt

```
Every Monday, send me last month's views and reads against the month before, my top 5 stories by reads, and any paywalled story whose member read ratio dropped.
```

1. 01  
### Pull two months, not one  
The agent calls get\_account\_stats for the last finished month and the month before. A month still in progress is labeled as partial, so a half month is never reported as a drop.
2. 02  
### Walk the whole back catalog  
list\_stories pages through every published story, 50 at a time, until next\_cursor is empty. Drafts and scheduled stories are left out because they have no numbers yet.
3. 03  
### Read each story's numbers  
get\_story\_stats runs per story. Stories with no views in the period are counted but not listed, so the report stays short on a large account.
4. 04  
### Flag what needs attention  
For paywalled stories, the agent compares member read ratio with your own average and lists the ones far below it, since Medium adjusts earnings by that ratio. Earnings from the last two days are marked as not final.
5. 05  
### Diff against last week  
If you keep the previous report as a file or an n8n table, the agent shows what moved since then: new top stories, stories that stopped getting reads, and follower changes from a single story.

### What you get back

Example data

```
September 2026 vs August: views 9,420 (+12%), reads 4,310 (+8%).
Top by reads: "Shipping small" 912, "Postgres indexes" 640, "Why we dropped GraphQL" 410.
Paywalled, read ratio well below your 38% average: "10 CLI tools I use" at 19%.
Earnings for September: $61.20; the last 2 days are not final yet.
27 stories had no views this month and are not listed.
```

### Other ways to ask

- Every Friday, list my stories published in the last 30 days with views, reads and read ratio, newest first.
- Compare my paywalled and free stories from this quarter by reads and tell me which free ones would be worth paywalling.
- On the 3rd of each month, send last month's earnings per story to my Google Sheet.

Before you automate it

## What Medium allows, and what to know first

- Medium counts a view after a reader stays on a story for 5 seconds and a read after 30 seconds, deduplicated per user and per day.
- Medium shows presentations only for stories published from 1 January 2025, so older stories report views and reads without a presentation count.
- Medium updates a story's Lifetime numbers hourly during its first month and daily after that, and earnings take up to 48 hours to be finalized.
- Medium adjusts Partner Program earnings by member read ratio (member reads of 30 seconds or more divided by member views): stories below the average go down, stories above it go up.
- Medium's live counts can shift slightly after its hourly deduplication, so a figure read mid-hour may differ from the stable one later.

Every tool here only reads, so it can run weekly from n8n, Make, Zapier or cron without waiting for your OK.

Sources: [Medium Help: Stats](https://help.medium.com/hc/en-us/articles/215108608-Stats) · [Medium Help: Story's detailed stats page](https://help.medium.com/hc/en-us/articles/34831991136151-Story-s-detailed-stats-page) · [Medium Help: Partner Program earnings calculation](https://help.medium.com/hc/en-us/articles/360036691193-Medium-Partner-Program-earnings-calculation) · [Medium Help: Frequently asked questions about Medium Stats](https://help.medium.com/hc/en-us/articles/360024113314-Frequently-asked-questions-about-Medium-Stats)

REST

## Call get\_account\_stats from a script

curl

```
curl https://cotlet.dev/api/v1/medium/get_account_stats \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"month":"2026-09"}'
```

Example response

```
{
"month": "2026-09",
"views": 9420,
"reads": 4310
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the tool is medium\_get\_account\_stats. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/medium-api-mcp-server#automations)

Tools

## Medium tools this automation uses

__Cotlet Medium tools used to get a weekly Medium stats and earnings report__
| Tool | Parameters |
| ------------------- | --------------------- |
| get\_account\_stats | month |
| list\_stories | status, limit, cursor |
| get\_story\_stats | story\_id |

[All 13 Medium tools with descriptions](https://cotlet.dev/integrations/medium-api-mcp-server#tools)

## More Medium automations

- [Cross-post blog articles to Medium with a canonical link](https://cotlet.dev/integrations/medium-api-mcp-server/cross-post-articles-with-canonical-link)
- [Publish Markdown to Medium on a schedule](https://cotlet.dev/integrations/medium-api-mcp-server/publish-markdown-to-medium)
- [Update old Medium stories in bulk](https://cotlet.dev/integrations/medium-api-mcp-server/edit-published-stories)
- [Medium API and MCP server: every tool](https://cotlet.dev/integrations/medium-api-mcp-server)
- [All use cases](https://cotlet.dev/use-cases)

## Give your agent access to Medium.

Free 7-day trial with 5,000 credits, no card needed. Cotlet is independent and not affiliated with Medium.

[Request access](https://cotlet.dev/app/signup?app=medium)
