The Guardian API: List headlines
Lists the stories on a Guardian section front (top stories, world, UK, US, business, environment, technology, sport or culture) in page order, with the summary and image shown on the front, the publication time (as displayed, else from the story page), and each story's section and authors from its page.
Unofficial. Not affiliated with or endorsed by The Guardian.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Section optional
section News section to list, for example world.
top stories
One of
top stories,world,UK,US,business,environment,technology,sport,culture. Defaulttop stories.- Max Results optional
max_results Maximum number of stories, for example 20.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "section": "top stories", "max_results": 20}Output
{ "stories": [ { "authors": [ "Nick Visser" ], "section": "US news", "summary": "The ocean phenomenon could raise sea levels by up to a foot as El Niño keeps warm water trapped along the coast", "headline": "Concern mounts over slow-moving, planetary-scale ‘Kelvin’ wave heading for California", "image_link": "https://i.guim.co.uk/img/media/9e5107f1d6a166f37f2f8a6a9f3796bed818b2b4/671_0_6713_5372/master/6713.jpg?width=465&dpr=1&s=none&crop=5%3A4" , "article_link": "https://www.theguardian.com/us-news/2026/sep/28/california-kelvin-wave" , "published_at": null }, { "authors": [], "section": "US news", "summary": null, "headline": "Trump administration to slash clean car rules aimed at cutting climate emissions", "image_link": null, "article_link": "https://www.theguardian.com/us-news/2026/sep/28/trump-administration-slashes-clean-car-rules" , "published_at": null }, { "authors": [ "Sara Sneath" ], "section": "US news", "summary": null, "headline": "Decades of fossil fuel influence paved way for Trump’s assault on university research, study says", "image_link": null, "article_link": "https://www.theguardian.com/us-news/2026/sep/28/fossil-fuel-industry-climate-research-universities-study" , "published_at": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"theguardian.com/list_headlines","input":{"section":"top stories","max_results":20}}' # 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": "theguardian.com/list_headlines" , "input": { "section": "top stories", "max_results": 20 }})# 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": "theguardian.com/list_headlines" , "input": { "section": "top stories", "max_results": 20 } }), 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 theguardian.com/list_headlines# with {"section":"top stories","max_results":20}"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", "properties": { "section": { "enum": [ "top stories", "world", "UK", "US", "business", "environment", "technology", "sport", "culture" ], "type": "string", "default": "top stories", "description": "News section to list, for example world." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of stories, for example 20." } }}Output schema
{ "type": "object", "required": [ "stories" ], "properties": { "stories": { "type": "array", "items": { "type": "object", "required": [ "headline", "summary", "published_at", "authors", "section", "image_link", "article_link" ], "properties": { "authors": { "type": "array", "items": { "type": "string" }, "description": "Named story authors, when available." }, "section": { "type": [ "string", "null" ], "description": "Story section." }, "summary": { "type": [ "string", "null" ], "description": "Summary shown on the section page, if any." }, "headline": { "type": "string", "description": "Story headline." }, "image_link": { "type": [ "string", "null" ], "description": "Story image link, if any." }, "article_link": { "type": "string", "description": "Guardian story page link." }, "published_at": { "type": [ "string", "null" ], "description": "Displayed publication time in ISO 8601, if any." } }, "additionalProperties": false }, "description": "Stories in section-page order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
theguardian.com/list_headlines- Returns
- headline, summary, publication time, authors, section, image link, article link
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 theguardian.com/list_headlines with the inputs above.
Ask your agent
- What are the top stories on The Guardian right now? Give me the first 10 with headlines, summaries and who wrote them.
- Pull the latest 25 environment stories from theguardian.com, including publication times and links.
- Show me what's leading the world news front today: headlines, authors, and article URLs for the top 15 pieces.
- I need the current tech headlines in the order they appear on the page, with the image links and the summary blurbs. Just 5 is fine.
- List the first 30 sport stories running now, with each one's byline, section, and when it was published.
See more
All The Guardian methodsSearches Guardian articles by keyword through the public Google News feed for theguardian.com, optionally within publication dates, ordered newest first or by relevance, and returns each article's headline, summary, authors, section and publication time from its Guardian page.
theguardian.com/search_newsReads one public Guardian article by link or headline and returns its details and available full-text paragraphs. Live blogs return the latest entries shown on the page; some older articles may be unavailable.
theguardian.com/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 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_headlinesLists the headlines on an NPR section page in page order, with summaries, publication times, authors, images and article links.
npr.org/list_headlinesLists the latest Reuters stories from a news section (top stories, business, markets, world, technology, legal or sustainability) in page order.
reuters.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 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_headlines