Yahoo API: Read article
Reads a public Yahoo News article from its link or headline and returns its text and details. Headline matching uses Yahoo News search results.
Unofficial. Not affiliated with or endorsed by Yahoo.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Article, required
article Yahoo News article link or headline, such as Two dead, 26 injured after coach overturns in southern Germany.
https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html
Input as JSON
{ "article": "https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html" }Output
{ "tags": [ "southern German", "police spokeswoman", "coach" ], "authors": [ "DPA" ], "section": "World", "summary": "Two people were killed and around 25 others slightly injured after a coach overturned on the A96 motorway in southern Germany on Sunday, police told dpa. A police spokeswoman said one more person was ...", "headline": "Two dead, 26 injured after coach overturns in southern Germany", "article_id": "9896c0e0-2b00-3f55-a7a0-4b6e8ca0635d", "paragraphs": [ "Two people were killed and around 25 others slightly injured after a coach overturned on the A96 motorway in southern Germany on Sunday, police told dpa.", "A police spokeswoman said one more person was critically injured and in life-threatening condition. The number of injured could rise further.", "The accident occurred in the early morning at just before 6 am (0400 GMT) on the A96 motorway near the town of Buchloe in the eastern Allgäu district of Bavaria. It happened between the junctions to the east of Buchloe and to the west of Landsberg am Lech." ], "updated_at": "2026-09-27T07:48:35+00:00", "word_count": 276, "article_link": "https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html" , "published_at": "2026-09-27T07:48:35+00:00", "main_image_link": "https://s.yimg.com/lo/mysterio/api/ee8f294c347bea8620614753cb9cf181dd3058dc59e4cd170bae97ca44603c8b/lightyear_networkapi/resizefill_w1200%3Bquality_80%3Bformat_webp/https%3A%2F%2Fmedia.zenfs.com%2Fen%2Fdpa_international_526%2Fb52734f62e88ae6e387af14ce91e7fe6.jpg" , "main_image_caption": "Emergency services and firefighters are on the scene near the southern German town of Buchloe, where a coach overturned on the A96 motorway. (is associated with: «Two dead, 26 injured after coach overturns in southern Germany») Karl-Josef Hildenbrand/dpa" , "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":"yahoo.com/read_article","input":{"article":"https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html"}}' # 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": "yahoo.com/read_article" , "input": { "article": "https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html" }})# 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": "yahoo.com/read_article" , "input": { "article": "https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html" } }), 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 yahoo.com/read_article# with {"article":"https://www.yahoo.com/news/world/articles/two-dead-26-injured-coach-074835373.html"}"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", "description": "Yahoo News article link or headline, such as Two dead, 26 injured after coach overturns in southern Germany." } }}Output schema
{ "type": "object", "required": [ "headline", "summary", "authors", "published_at", "updated_at", "section", "tags", "main_image_link", "main_image_caption", "paragraphs", "full_text_available", "word_count", "article_link", "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" ], "description": "Last update date and time in ISO 8601 with offset." }, "word_count": { "type": "integer" }, "article_link": { "type": "string" }, "published_at": { "type": [ "string", "null" ], "description": "Publication date and time in ISO 8601 with offset." }, "main_image_link": { "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
yahoo.com/read_article- Returns
- headline, summary, authors, dates, section, tags, main image, paragraphs, word count, link, 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 yahoo.com/read_article with the inputs above.
Ask your agent
- Can you pull up the full text of this Yahoo News story about the coach crash in southern Germany that left two dead and 26 injured?
- I need the author, publication date, and section for the article titled Two dead, 26 injured after coach overturns in southern Germany.
- Read the Yahoo article at https://www.yahoo.com/news/ and give me its summary, tags, and word count.
- Find the news story about a bus accident in Bavaria and return its headline, main image, and paragraphs.
- Look up the article on the German coach overturning and tell me its section and the article id.
See more
All Yahoo methodsLists 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_headlinesSearches Yahoo News articles by keyword, newest first or by relevance, with optional publication dates and pages; returns only articles hosted on Yahoo News, with authors, original publisher and section.
yahoo.com/search_newsLooks up a company by name or ticker on Yahoo Finance and returns its latest news headlines, with article summaries when the article page provides one.
finance.yahoo.com/get_company_newsLooks up a Yahoo Sports player by name and returns the player's regular-season statistics for a season, alongside career totals. Each stat includes season and career values.
sports.yahoo.com/get_player_statsLooks up a stock, fund, index, or cryptocurrency by name or ticker and returns its latest displayed price and key statistics. Unavailable figures are null; quotes may be delayed.
finance.yahoo.com/get_quoteShows analyst recommendations, price targets, earnings estimates and recent rating changes for a public company on Yahoo Finance.
finance.yahoo.com/get_analyst_ratingsGets scores and schedules for a league on a date, or for the football week that contains the date. Results can be limited to one team. Venue names come from each game page, for up to 22 games.
sports.yahoo.com/get_scoresLists Yahoo Finance's top gainers, top losers, most active stocks, or regional trending tickers in Yahoo's order, with price, change, volume and market cap.
finance.yahoo.com/list_market_movers