Medium logo

Medium automation · runs weekly

Get a weekly Medium stats and earnings 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.

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 · Medium Help: Story's detailed stats page · Medium Help: Partner Program earnings calculation · Medium Help: 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

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

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.