VOOZH about

URL: https://dev.to/zenndraapi/pull-medium-comments-into-your-moderation-dashboard-3lic

⇱ Pull Medium Comments into Your Moderation Dashboard - DEV Community


Pull Medium Comments into Your Moderation Dashboard

If you syndicate full articles on-site, community managers still need responses in one ops stack. Scraping comment threads breaks when Medium tweaks markup; a responses endpoint does not.

Tool outcome: moderation_queue table fed by /article/{id}/responses on a schedule.


Workflows

  • Flag threads for human review in Retool or a custom admin.
  • Count responses per syndicated post for SLA reporting.
  • Export plain text for NLP toxicity scoring (run your own models; do not ship PII to random APIs without policy).

Ingest responses

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

async function importResponses(articleId) {
 const res = await fetch(`${API}/article/${articleId}/responses`, { headers });
 const { responses } = await res.json();

 for (const r of responses ?? []) {
 await db.query(
 `INSERT INTO moderation_queue (response_id, article_id, author_id, body, status)
 VALUES ($1, $2, $3, $4, 'pending')
 ON CONFLICT (response_id) DO NOTHING`,
 [r.id, articleId, r.author_id, r.content ?? r.text]
 );
 }
}

List-level threads: /list/{list_id}/responses for list-native discussions.


Enrich for reviewers

Pair with:

  • /article/{id} — post title, tags, URL context
  • /user/{user_id} — author bio, follower count (signals for spam)

Store response_id to keep imports idempotent.


Product tips

  • Show original Medium permalink in the admin so moderators can escalate on-platform.
  • Auto-hide on your embed only after decision—Medium’s thread may still exist.
  • Rate-limit polling; comments are not stock tickers.

Keywords

medium comments api, medium responses endpoint, medium moderation, syndicated blog comments.


Further reading