wsj.com API: List Wall Street Journal section headlines
Lists the headlines shown in a Wall Street Journal news section (top stories, business, markets, tech, economy, world, politics or personal finance) with summaries, bylines, dates, images and story links.
Unofficial. Not affiliated with or endorsed by wsj.com.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Section optional
section News section to list, for example business.
top stories
One of
top stories,business,markets,tech,economy,world,politics,personal finance. Defaulttop stories.- Max Results optional
max_results Maximum number of stories to return, for example 20.
20
Whole number from 1 to 50. Default
20.
Input as JSON
{ "section": "top stories", "max_results": 20}Output
{ "stories": [ { "authors": [ "Maxwell Zeff" ], "section": "Tech", "summary": "The model, known as GPT-6.1 Astra, was due to debut inside ChatGPT and Codex in October.", "headline": "OpenAI Scraps Release of New AI Model Over Safety Concerns", "image_link": "https://images.wsj.net/im-33138169?size=1.5" , "article_link": "https://www.wsj.com/tech/ai/openai-chatgpt-model-release-cancel-safety-5a2f9f42" , "published_at": null }, { "authors": [ "Georgi Kantchev" ], "section": "World", "summary": "The erosion of Iran’s position comes as the U.S. Navy and Gulf oil producers have become better at fending off or evading Iranian attacks, allowing more tankers to cross the strait.", "headline": "Middle East Oil Exports Rebound as Iran’s Chokehold on Hormuz Breaks Down", "image_link": "https://images.wsj.net/im-26956664?size=1.78" , "article_link": "https://www.wsj.com/world/middle-east/middle-east-oil-exports-rebound-as-irans-chokehold-on-hormuz-breaks-down-4ffde655" , "published_at": null }, { "authors": [ "AnnaMaria Andriotis" ], "section": "Markets", "summary": "Under the plan, David Solomon, who has led the bank since 2018, would step down as soon as next year and be executive chair.", "headline": "Goldman’s Board Has Discussed a Plan to Name John Waldron as Its Next CEO", "image_link": "https://images.wsj.net/im-30810617?size=1.5" , "article_link": "https://www.wsj.com/finance/banking/goldmans-board-has-discussed-a-plan-to-name-john-waldron-as-its-next-ceo-7c5d90dd" , "published_at": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"wsj.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": "wsj.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": "wsj.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 wsj.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", "business", "markets", "tech", "economy", "world", "politics", "personal finance" ], "type": "string", "default": "top stories", "description": "News section to list, for example business." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum number of stories to return, for example 20." } }, "additionalProperties": false}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" } }, "section": { "type": "string" }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "image_link": { "type": [ "string", "null" ] }, "article_link": { "type": "string" }, "published_at": { "type": [ "string", "null" ], "description": "Published date and time with time zone, when available." } }, "additionalProperties": false } } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
wsj.com/list_headlines- Returns
- headline, summary, published date, 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 wsj.com/list_headlines with the inputs above.
Ask your agent
- What are the top 10 stories on the Wall Street Journal right now? Give me headlines, summaries and links.
- Pull the latest 25 markets headlines with bylines and publish dates
- I need a rundown of today's tech news from WSJ — up to 15 articles with authors and article URLs
- Show me the current economy section headlines and their short summaries, max 30
- Get me the newest personal finance stories, about 8 of them, including image links and who wrote each one
See more
All wsj.com methodsSearches public Wall Street Journal headlines and summaries by keyword, newest or most relevant first, optionally within publication dates; podcasts and live-coverage posts are left out.
wsj.com/search_newsLists CNBC article headlines in the order they appear on a public news section page, with summary, time, authors and image.
cnbc.com/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 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 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 Fox News article headlines in the order shown on a news section page. Video-only items, ads and promotions are left out.
foxnews.com/list_headlines