Without programmatic integration with Google Postmaster Tools or Microsoft SNDS, you learn about reputation problems by noticing a drop in open rates — days or weeks after the damage occurred. Postmaster Tools reports domain reputation (high/medium/low/bad), IP reputation, DMARC pass rate, and spam classification rate for Gmail traffic. Microsoft SNDS reports IP reputation and complaint rates for Outlook. Both platforms provide the earliest warning signal available before inbox filtering escalates to blocking. Manual monitoring via dashboard login means the signal arrives too late and only when someone remembers to check.
High because reputation degradation at Gmail and Microsoft can block delivery to the majority of a subscriber base within days of a threshold crossing, and automated monitoring is the only way to catch and act on the signal before blocks take effect.
Integrate with the Gmail Postmaster Tools API using googleapis and store the fetched stats in your database. Run this on a daily cron via Vercel or a queue worker:
import { google } from 'googleapis'
const postmaster = google.gmailpostmastertools('v1')
export async function fetchDomainReputation(
domain: string,
auth: OAuth2Client
): Promise<void> {
const dateStr = new Date().toISOString().slice(0, 10).replace(/-/g, '')
const response = await postmaster.domains.trafficStats.get({
name: `domains/${domain}/trafficStats/${dateStr}`,
auth
})
await db.domainReputation.upsert({
where: { domain },
update: {
spamRate: response.data.spamRate ?? null,
dkimPassRate: response.data.dkimSuccessRatio ?? null,
updatedAt: new Date()
},
create: { domain, updatedAt: new Date() }
})
}
For Microsoft SNDS, register your IP ranges at postmaster.live.com and poll the CSV API endpoint. Alert when domain reputation drops below HIGH or IP reputation category turns Yellow.
ID: deliverability-engineering.warmup-reputation.reputation-monitoring-integration
Severity: high
What to look for: Enumerate all reputation monitoring integrations. Check for integration with Google Postmaster Tools API (gmailpostmastertools.googleapis.com) or Microsoft SNDS (Smart Network Data Services). Look for HTTP client calls to these APIs, OAuth credentials for Postmaster Tools, or scheduled jobs that fetch reputation data. Also check for third-party deliverability monitoring services (250ok, GlockApps, Validity, Kickbox) integrated in the codebase.
Pass criteria: At least 1 external reputation monitoring source is integrated. Quote the actual API client or integration found. — data is fetched programmatically on a schedule and stored for alerting and trend analysis.
Fail criteria: No integration with Google Postmaster Tools, Microsoft SNDS, or any deliverability monitoring service. Reputation is monitored manually by logging into dashboards.
Skip (N/A) when: Sending volume is below 1,000/day where Postmaster Tools does not provide data (requires domain to appear in sufficient Gmail traffic).
Detail on fail: "No Postmaster Tools or SNDS integration found — reputation must be manually monitored via browser dashboards, creating blind spots" or "Reputation monitoring tools referenced in docs but no API integration in codebase"
Remediation: Integrate with Google Postmaster Tools via the Gmail Postmaster Tools API:
import { google } from 'googleapis'
const postmaster = google.gmailpostmastertools('v1')
export async function fetchDomainReputation(
domain: string,
auth: OAuth2Client
): Promise<void> {
const today = new Date()
const dateStr = `${today.getFullYear()}/${String(today.getMonth() + 1).padStart(2, '0')}/${String(today.getDate()).padStart(2, '0')}`
const response = await postmaster.domains.trafficStats.get({
name: `domains/${domain}/trafficStats/${dateStr.replace(/\//g, '')}`,
auth
})
const stats = response.data
await db.domainReputation.upsert({
where: { domain },
update: {
spamRate: stats.spamRate ?? null,
inboxRate: stats.inboxCount
? stats.inboxCount / (stats.inboxCount + stats.spamCount!)
: null,
dkimPassRate: stats.dkimSuccessRatio ?? null,
spfPassRate: stats.spfSuccessRatio ?? null,
dmarcPassRate: stats.dmarcSuccessRatio ?? null,
updatedAt: new Date()
},
create: { domain, updatedAt: new Date() }
})
}