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_queuetable fed by/article/{id}/responseson 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
- OWASP: input validation before rendering user HTML
- Zenndra: Moderate Medium comments and responses
Top comments (0)