NPR API: List headlines
Lists the headlines on an NPR section page in page order, with summaries, publication times, authors, images and article links.
Unofficial. Not affiliated with or endorsed by NPR.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Section optional
section The NPR news section to read, for example world.
national
One of
top stories,national,world,politics,business,health,science,climate. Defaulttop stories.- Max Results optional
max_results Maximum number of headlines to return, for example 20.
50
Whole number from 1 to 50. Default
20.
Input as JSON
{ "section": "national", "max_results": 50}Output
{ "stories": [ { "authors": [ "Frank Langfitt" ], "section": "American Identity", "summary": "At least four Trump merchandise stores have closed this year. Store owners say with Trump in his final term, there isn't as much to fire up his consumer fan base and sales have softened.", "headline": "Trump merchandise stores are closing: 'He has peaked'", "image_url": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/4032x2268+0+378/resize/800/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F71%2F12%2Fce971cb04c06a4a07472c7528d90%2Fwhatsapp-image-2026-10-19-at-17-52-19.jpeg" , "article_url": "https://www.npr.org/2026/10/22/nx-s1-6002970/trump-merchandise-stores-closing-maga-midterms" , "published_at": "2026-10-22T05:00:00-04:00" }, { "authors": [ "Jennifer Ludden" ], "section": "Affordability", "summary": "A new analysis finds that the average renter household now needs 16 years to save for a down payment and closing costs. Rising rents and other costs have consumed a growing share of household budgets.", "headline": "How long does it take to save up for a starter home? Twice as long as it did in 2019", "image_url": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/5794x3259+0+341/resize/800/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F72%2F4f%2Fa6ef628346e5b0e8961027373fce%2Fgettyimages-2285398485.jpg" , "article_url": "https://www.npr.org/2026/10/22/nx-s1-6009378/down-payment-real-estate-affordability" , "published_at": "2026-10-22T05:00:00-04:00" }, { "authors": [ "Jaclyn Diaz" ], "section": "Criminal Justice", "summary": "The Supreme Court ruled Wednesday that the Trump administration has to continue providing gender-affirming care to inmates in federal prisons as litigation on efforts to change the policy continues.", "headline": "Supreme Court upholds pause on Trump's anti-trans prison policy", "image_url": "https://npr.brightspotcdn.com/dims3/default/strip/false/crop/8126x4571+0+423/resize/800/quality/100/format/jpeg/?url=http%3A%2F%2Fnpr-brightspot.s3.amazonaws.com%2F32%2Fca%2F101aa09243d3b3fa4de648137a9e%2Fgettyimages-2299615293.jpg" , "article_url": "https://www.npr.org/2026/10/21/nx-s1-5993878/supreme-court-trump-trans-prison-policy" , "published_at": "2026-10-21T11:46:27-04:00" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"npr.org/list_headlines","input":{"section":"national","max_results":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "npr.org/list_headlines" , "input": { "section": "national", "max_results": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "npr.org/list_headlines" , "input": { "section": "national", "max_results": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run npr.org/list_headlines# with {"section":"national","max_results":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [], "properties": { "section": { "enum": [ "top stories", "national", "world", "politics", "business", "health", "science", "climate" ], "type": "string", "default": "top stories", "description": "The NPR news section to read, for example world." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of headlines to return, for example 20." } }}Output schema
{ "type": "object", "required": [ "stories" ], "properties": { "stories": { "type": "array", "items": { "type": "object", "required": [ "headline", "summary", "published_at", "authors", "section", "image_url", "article_url" ], "properties": { "authors": { "type": "array", "items": { "type": "string" }, "description": "Credited authors, empty if none are shown." }, "section": { "type": "string" }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "image_url": { "type": [ "string", "null" ] }, "article_url": { "type": "string" }, "published_at": { "type": [ "string", "null" ], "description": "Publication time with UTC offset, or null if not shown." } }, "additionalProperties": false }, "description": "NPR stories in the same order as the selected page." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
npr.org/list_headlines- Returns
- headline, summary, published_at, authors, section, image_url, article_url
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method npr.org/list_headlines with the inputs above.
Ask your agent
- Show me the latest headlines from NPR's world section, around 15 of them with summaries and links.
- What are today's top stories on NPR? Give me up to 20 with authors and publication times.
- I need the newest climate coverage from npr.org, listing headlines with their images and article links.
- Pull the first 30 politics headlines in page order from NPR, including who wrote each one.
- Get me a quick rundown of NPR's health news, maybe 10 headlines with short summaries.
See more
All NPR methodsSearches NPR-published articles by keyword, newest first or by best match, with optional publication dates, and returns each article's date, authors, section and summary.
npr.org/search_newsReads an NPR article by its link or headline and returns its text and publication details. For live blogs, returns the displayed updates.
npr.org/read_articleLists the article headlines shown on a BBC News section page, in page order, with summary, publish time, authors, image and link.
bbc.com/list_headlinesLists CNN headlines in the order shown on a chosen news section page (top stories, US, world, politics, business, health, entertainment or science), with each story's summary, publication time, authors and image when available. Promotions and video-only items are left out.
cnn.com/list_headlinesLists AP News headlines in the order shown on a public section page, up to 50 stories. Author credits and the article section are added for the first 20 articles only.
apnews.com/list_headlinesLists the latest Yahoo News headlines for a section in page order, with summary, byline, original publisher, image and publication time when the article provides them.
yahoo.com/list_headlinesLists current New York Times headlines with summaries, authors, images and publication times, in the order shown on the chosen section page (top stories or a section). Video-only items, ads and promotions are left out; times come from the section's feed and may be missing.
nytimes.com/list_headlinesLists The Verge story headlines, including quick posts, in the order shown on a section page. Archive pages are added when more stories are needed.
theverge.com/list_headlines