ESPN API: List news for a league or team
Finds an ESPN league or team by name and lists the latest headlines ESPN publishes for it, newest first.
Unofficial. Not affiliated with or endorsed by ESPN.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Topic, required
topic League or team name, such as NBA or New York Yankees.
NBA
- Max Results optional
max_results Maximum articles to return, such as 10. Up to 50.
10 (default)
Whole number from 1 to 50.
Input as JSON
{ "topic": "NBA"}Output
{ "articles": [ { "author": null, "summary": "Charles Barkley might want to hit the books after a seriously rough outing on Inside the NBA's 'who he play for?'", "headline": "Charles Barkley 'clearly didn't do his homework'", "image_link": "https://espnmedia-cdn.akamaized.net/espn/media/common/2026/1023/dm_261023_Basketball_Highlight_Charles_Barkley_clearly_didnt_do_his_homework_20261023/dm_261023_Basketball_Highlight_Charles_Barkley_clearly_didnt_do_his_homework_20261023.jpg" , "article_link": "https://www.espn.com/video/clip/_/id/50256038/charles-barkley-clearly-do-homework" , "published_at": "2026-10-23T08:26:10+00:00" }, { "author": "Kris Rhim", "summary": "Booed after trailing by 24 at the half, the Sixers rode a game-high 32 points from Tyrese Maxey to erase a 29-point deficit and stun the Cavs 114-106 on Thursday.", "headline": "Maxey, Sixers turn Philly boos into cheers in 29-point comeback over Cavaliers", "image_link": "https://a.espncdn.com/photo/2026/1023/r1734920_600x400_3-2.jpg" , "article_link": "https://www.espn.com/nba/story/_/id/50255686/maxey-leads-charge-sixers-rally-29-stun-cavs" , "published_at": "2026-10-23T07:20:49+00:00" }, { "author": null, "summary": "Shai Gilgeous-Alexander's historic streak of 20-point games ended Thursday night when he finished with 17 in a 96-84 win over the Nuggets.", "headline": "Shai Gilgeous-Alexander's record 20-point streak ends in Thunder win over Nuggets", "image_link": "https://a.espncdn.com/photo/2026/1023/r1734913_600x400_3-2.jpg" , "article_link": "https://www.espn.com/nba/story/_/id/50255402/gilgeous-alexander-record-20-point-streak-ends-thunder-win" , "published_at": "2026-10-23T06:40:13+00:00" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"espn.com/list_news","input":{"topic":"NBA"}}' # 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": "espn.com/list_news" , "input": { "topic": "NBA" }})# 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": "espn.com/list_news" , "input": { "topic": "NBA" } }), 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 espn.com/list_news# with {"topic":"NBA"}"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": [ "topic" ], "properties": { "topic": { "type": "string", "minLength": 1, "description": "League or team name, such as NBA or New York Yankees." }, "max_results": { "type": "integer", "default": 10, "maximum": 50, "minimum": 1, "description": "Maximum articles to return, such as 10. Up to 50." } }}Output schema
{ "type": "object", "required": [ "articles" ], "properties": { "articles": { "type": "array", "items": { "type": "object", "properties": { "author": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "image_link": { "type": [ "string", "null" ] }, "article_link": { "type": "string" }, "published_at": { "type": [ "string", "null" ] } } }, "description": "Articles for the league or team, newest first." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
espn.com/list_news- Returns
- headline, summary, published time, author, 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 espn.com/list_news with the inputs above.
Ask your agent
- Show me the latest headlines for the Boston Celtics, newest first, up to 15 articles.
- What's the newest news about the NFL? Give me around 8 stories with summaries and links.
- I need recent articles on the Los Angeles Dodgers from ESPN, including authors and publish times.
- List the top 20 most recent stories for Premier League soccer with image links.
- Find the latest news on the Chicago Bears and return headline, summary, and article link for each.
See more
All ESPN methodsGets ESPN scores and the schedule for a league on a local day. You can filter by team, and start times are shown in your time zone.
espn.com/get_scoresReturns a team's past results and upcoming games for a season on ESPN, with opponents, local start times, scores, broadcasts and venues. Soccer fixtures include all competitions shown for the team.
espn.com/get_team_scheduleFinds the latest game between two teams, or their game on a given date, in major US leagues, MLS or the EPL. Returns the score, scoring by period, leading players, team stats and player box scores.
espn.com/get_game_summaryLooks up an ESPN player by name and returns season and career statistics. Use a league to tell apart players with the same name, and a season year or label to pick a past season.
espn.com/get_player_statsLists the current top Google News stories, overall or for one topic, in a chosen country and language edition.
news.google.com/list_top_storiesFinds public Substack newsletters matching a topic, in Substack's search order. Subscriber counts are null when Substack does not display one.
substack.com/search_newslettersLists current headlines from an Al Jazeera section page in page order, with summaries, bylines, publish times, images and article links. Pages further into the section through the site's feed when needed.
aljazeera.com/list_headlinesLists public Medium articles for a topic, newest first or popular this week, with author, publication, reading time, claps and membership status.
medium.com/list_topic_articles