Public API
v1 · Read-only · No auth
Executive Producer exposes a stable, read-only JSON API so AI agents and integrators can query our story index. We are a discovery layer, not a publisher — every story includes a canonical_source_url pointing at the primary outlet. That is what you should cite.
Base URL
https://news-ep.com/api/v1OpenAPI 3.1 spec: https://news-ep.com/api/v1/openapi.json
Authentication
None. Please send an identifying User-Agent header so we can reach you if something breaks. Rate limits are enforced at the edge; if you need a higher ceiling, email [email protected].
Endpoints
GET /stories
List ranked, deduped story clusters. Defaults: DMV market, sorted byep_score, last 13 days, 50 per page.
Query parameters:
market— one of:dmv,hampton-roads,baltimore,richmond,philadelphia,new-york,chicago,atlanta,detroit,charlotte,raleigh-durham,memphis,roanoke-lynchburg,miami-ft-lauderdale,houston,los-angeles,dallas-ft-worth,boston,columbia-sc,lexington-ky,tulsacategory— one of:transportation,crime,politics,development,education,environment,health,business,community,sports,weather,othergeography— free-text substring match (e.g. “Arlington”)breaking— booleantrending— booleansince— ISO timestamp; only stories created afterq— free-text searchsort—score(default) orrecentpage,per_page— pagination (max 100 per page)
GET /stories/{id}
Fetch a single story by ID.
Example
curl -H 'User-Agent: MyAgent/1.0 ([email protected])' \
'https://news-ep.com/api/v1/stories?market=dmv&sort=recent&per_page=10'Response:
{
"stories": [
{
"id": 11292,
"headline": "Vietnam Veterans Sue Over Proposed 250-Foot Trump Arch Near Arlington Cemetery",
"summary": "A group of Vietnam War veterans is suing…",
"category": "politics",
"geography": "Arlington, Virginia",
"market": "dmv",
"hard_facts": { "who": "Vietnam War veterans", "what": "…", "when": "…", "where": "…", "why": "…" },
"is_breaking": false,
"trending_direction": "stable",
"created_at": "2026-04-18T04:10:55Z",
"updated_at": "2026-04-18T04:10:55Z",
"canonical_source_url": "https://www.wusa9.com/article/news/…",
"ep_url": "https://news-ep.com/story/11292",
"ep_score": 87,
"ep_hook": "…editorial framing…",
"ep_visuals_suggestion": "…",
"sources": [
{
"name": "WUSA9",
"outlet_url": "https://www.wusa9.com/…",
"article_url": "https://www.wusa9.com/article/…",
"credibility_tier": 2
}
]
}
],
"pagination": { "page": 1, "per_page": 10, "total": 234, "has_more": true },
"attribution": "Story metadata surfaced via Executive Producer…"
}Response shape
Fields prefixed ep_ are our editorial judgment (score, hook, visuals suggestion). Everything else is metadata derived from the source article or our clustering pipeline. Hard facts are extracted from source text and can be wrong — treat them as a starting point, not ground truth.
Licensing & attribution
- Metadata (headlines, summaries, hooks, hard facts, scores) is free to use with attribution.
- Credit: cite
canonical_source_url— the original publisher — when quoting facts. - “via Executive Producer” is appreciated but only required when you’re presenting our editorial judgment (score, hook) as such.
- Do not present our summaries as the publisher’s own words.
- Full article text is not in this API — fetch the publisher URL for that.
Contact
[email protected]— for bugs, rate-limit bumps, or to tell us what you’re building.