Public JSON API

Latest top stories for operator-intelligence newsletters. Signal, not noise.

Media Monitor ingests a high volume of sources daily, runs AI relevance scoring plus an editorial gatekeeper, dedupes the feed, and exposes the few highest-signal stories per newsletter.

API Overview

One endpoint per newsletter subdomain.

The endpoint returns the latest published issue and its ordered top stories. Use the optional ?dispatch=<id-or-slug> query parameter to target a specific newsletter on the same stage.

Commerce Signal

Commerce operator intelligence

https://commerce-signal.mediamonitor.live/api/public-newsletter-latest
Open JSON
Growth Stack Brief

Growth tooling and GTM signals

https://growth-stack-brief.mediamonitor.live/api/public-newsletter-latest
Open JSON
AI Coding Brief

AI coding and developer-tool signals

https://ai-coding.mediamonitor.live/api/public-newsletter-latest
Open JSON
Auth No auth required
CORS Enabled for public fetches
Caching ~60s browser / ~300s CDN
Privacy No subscriber, email, or PII fields

Live Widget

Today's Top Signals

This widget fetches the Commerce Signal public endpoint in the browser and renders the issue's topStories in the API's best-first order.

Today's Top Signals

Commerce Signal

Loading latest issue...

Embed pattern: add a container to your page, fetch the public JSON endpoint client-side, and render issue.topStories. Handle issue: null as a normal empty state.

Response Schema

Stable, small, and intentionally public.

The response is JSON, never rendered email HTML. The issue can be null when nothing has been published yet.

Field Type Meaning
version number Schema version. Current value is 1.
generatedAt ISO datetime string When the public JSON payload was generated.
newsletter.id string Newsletter identifier.
newsletter.slug string Newsletter slug.
newsletter.title string Human-readable newsletter title.
issue object or null Latest published issue, or null when nothing is published yet.
issue.issueId string Latest issue identifier.
issue.dispatchId string Dispatch/newsletter identifier for the issue.
issue.subject string Published issue subject line.
issue.createdAt ISO datetime string When the issue was created.
issue.leadSignalCount number Count of lead signals exposed for the issue.
issue.topStories array Ordered best-first by relevancyScore.
issue.topStories[].title string Story headline.
issue.topStories[].url string URL Source article URL.
issue.topStories[].summary string Short story summary.
issue.topStories[].sourceLabel string Source label shown with the story.
issue.topStories[].categoryLabel string Newsletter category label for the story.
issue.topStories[].relevancyScore number, 0-100 The newsletter's own AI-refined relevance ranking.

Copy-Paste Examples

Fetch the latest signals.

curl -s \
  https://commerce-signal.mediamonitor.live/api/public-newsletter-latest
const response = await fetch(
  "https://commerce-signal.mediamonitor.live/api/public-newsletter-latest",
  { headers: { Accept: "application/json" } }
);

if (!response.ok) throw new Error("Latest issue unavailable");

const payload = await response.json();

if (!payload.issue) {
  // Nothing published yet. Render an empty state.
} else {
  // Already ordered best-first by relevancyScore.
  const stories = payload.issue.topStories;
}
Null Issue

Nothing published yet is not an error.

Treat issue: null as a normal empty state for a new or paused newsletter.

Ordering

Top stories arrive best-first.

The API returns topStories ordered by the newsletter's own relevancyScore.

Public Payload

Designed for syndication.

The endpoint returns public story metadata only: no subscriber data, email addresses, or PII.