CNN API: Read an article
Reads a CNN article by link or headline and returns its headline, summary, authors, dates, section, tags, main image and public paragraphs. Subscriber stories return only a brief public preview; live blogs include their entries.
Unofficial. Not affiliated with or endorsed by CNN.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Article, required
article CNN article link or headline, for example Alito recuses himself from major Supreme Court climate change case.
https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor
Input as JSON
{ "article": "https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor" }Output
{ "tags": [], "authors": [ "John Fritze" ], "section": "Politics", "summary": "Supreme Court Justice Samuel Alito announced Monday that he will recuse himself from a major climate change-related case the court is set to hear next week, following weeks of pressure from environmental groups that argued he was compromised by his financial holdings in the oil and gas industry.", "headline": "Alito recuses himself from major Supreme Court climate change case", "article_id": "cmuljayrn000027qj5nx0drzl", "paragraphs": [ "Supreme Court Justice Samuel Alito announced Monday that he will recuse himself from a major climate change-related case the court is set to hear next week, following weeks of pressure from environmental groups that argued he was compromised by his financial holdings in the oil and gas industry.", "In a brief letter sent to the parties in the case, the Supreme Court’s clerk wrote that the conservative justice had “determined that he will not continue to participate in this case,” but did not offer further explanation for the decision.", "The climate issue will be the first case argued at the Supreme Court as it opens its new term next Monday. It deals with whether Boulder, Colorado, may sue Suncor Energy and Exxon Mobil for damages caused by climate change, or whether state tort laws are preempted by federal law and separation of po…" ], "updated_at": "2026-09-28T19:56:55.246+00:00", "word_count": 329, "article_url": "https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor" , "published_at": "2026-09-28T18:07:16.542+00:00", "main_image_url": "https://media.cnn.com/api/v1/images/stellar/prod/gettyimages-2194936744.jpg?c=original" , "main_image_caption": "Associate Supreme Court Justice Samuel Alito Jr. attends President Donald Trump's inauguration in the Rotunda of the US Capitol on January 20, 2025.", "full_text_available": true}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"cnn.com/read_article","input":{"article":"https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor"}}' # 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": "cnn.com/read_article" , "input": { "article": "https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor" }})# 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": "cnn.com/read_article" , "input": { "article": "https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor" } }), 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 cnn.com/read_article# with {"article":"https://www.cnn.com/2026/09/28/politics/justice-alito-recuses-climate-change-boulder-suncor"}"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": [ "article" ], "properties": { "article": { "type": "string", "minLength": 1, "description": "CNN article link or headline, for example Alito recuses himself from major Supreme Court climate change case." } }}Output schema
{ "type": "object", "required": [ "headline", "summary", "authors", "published_at", "updated_at", "section", "tags", "main_image_url", "main_image_caption", "paragraphs", "full_text_available", "word_count", "article_url", "article_id" ], "properties": { "tags": { "type": "array", "items": { "type": "string" } }, "authors": { "type": "array", "items": { "type": "string" } }, "section": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "article_id": { "type": [ "string", "null" ], "x-fous-developer": true }, "paragraphs": { "type": "array", "items": { "type": "string" } }, "updated_at": { "type": [ "string", "null" ], "format": "date-time" }, "word_count": { "type": "integer" }, "article_url": { "type": "string" }, "published_at": { "type": [ "string", "null" ], "format": "date-time" }, "main_image_url": { "type": [ "string", "null" ] }, "main_image_caption": { "type": [ "string", "null" ] }, "full_text_available": { "type": "boolean" } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
cnn.com/read_article- Returns
- headline, summary, authors, dates, section, tags, main image, paragraphs, article URL and ID
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 cnn.com/read_article with the inputs above.
Ask your agent
- Pull up the CNN story at https://www.cnn.com/2024/03/12/politics/supreme-court-climate-case/index.html and give me its headline, authors and publish date.
- Can you read the article titled Alito recuses himself from major Supreme Court climate change case and summarize it for me?
- I need the full public paragraphs and tags from the CNN piece about the latest live blog on the Gaza ceasefire talks.
- Look up the article 'Storm system forecast to drop heavy snow across the Rockies this weekend' and tell me its section and main image.
- Retrieve the article ID and article URL for the CNN story on rising egg prices, plus any subscriber preview text it shows.
See more
All CNN methodsLists 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_headlinesSearches CNN articles by keyword, with optional publication date range, sort order and pagination.
cnn.com/search_newsReads the text and details of a BBC News article from its link or headline. Live coverage pages return the latest entries available.
bbc.com/read_articleReads 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_articleReads the full text and details of one public AP News article from its link or headline.
apnews.com/read_articleReads 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_articleReads a public Yahoo News article from its link or headline and returns its text and details. Headline matching uses Yahoo News search results.
yahoo.com/read_articleReads a public TechCrunch article by link or headline and returns its text, authors, dates, section, tags and image. Live blogs return their latest public updates.
techcrunch.com/read_article