DEV Community

Sebastian Casvean
Sebastian Casvean

Posted on • Originally published at zenndra.com

Monitor Medium Publications and Newsletter Feeds via API

Monitor Medium Publications and Newsletter Feeds via API

Readers follow collections—Towards Data Science, niche newsletters—not just individual writers. Products that only track users miss half the signal.

Tool outcome: A publication watcher config + cron that logs new article_id rows per collection.


Playbook (four steps)

  1. GET /publication/id_for/{slug}publication_id
  2. GET /publication/{id} → directory metadata (name, followers, description)
  3. GET /publication/{id}/articles on a schedule → syndication feed
  4. GET /publication/{id}/newsletter → signup UX copy, cadence hints

Pair with content aggregator patterns for one normalized table.


Resolve slug once

const API = 'https://api.zenndra.com';
const headers = { Authorization: `Bearer ${process.env.ZENNDRA_API_KEY}` };

async function resolvePublication(slug) {
  const res = await fetch(`${API}/publication/id_for/${encodeURIComponent(slug)}`, { headers });
  const { publication_id } = await res.json();
  return publication_id;
}

const pubId = await resolvePublication('towards-data-science');
Enter fullscreen mode Exit fullscreen mode

Poll for new stories

async function pollPublication(publicationId, knownIds) {
  const res = await fetch(`${API}/publication/${publicationId}/articles`, { headers });
  const { articles } = await res.json();
  const fresh = (articles ?? []).filter((a) => !knownIds.has(a.id));
  fresh.forEach((a) => knownIds.add(a.id));
  return fresh; // enqueue webhooks, Slack, email digest
}
Enter fullscreen mode Exit fullscreen mode

Store knownIds in Redis or Postgres per publication.


Who needs this

  • Competitive intelligence — alert when a rival publication ships daily.
  • Newsletter tools — cross-promote partner collections.
  • Employee intranets — surface partner content with attribution.

Operations

  • Deduplicate globally on article_id if you watch overlapping pubs.
  • Alert on three empty polls—usually wrong slug, not “no news.”
  • Link out to original Medium URLs in every UI surface.

Keywords

medium publication api, monitor medium publication, medium collection feed, medium newsletter metadata.


Further reading

Top comments (0)