Daily Mail API: Search news
Searches Daily Mail-published articles by keyword, newest first or by relevance, with optional publication dates and paging, and returns each article's headline, summary, time, authors and section. Covers up to the 200 matches Daily Mail search offers; syndicated wire stories are excluded.
Unofficial. Not affiliated with or endorsed by Daily Mail.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Page optional
page Page of article results, for example 1.
1 (default)
Whole number 1 or more.
- Sort optional
sort Sort by newest or most relevant, for example newest.
newest (default)
One of
newest,most_relevant.- Query, required
query Words to search for, for example Tesla.
Tesla
- To Date optional
to_date Latest publication date (YYYY-MM-DD), for example 2026-09-29.
Not set
- From Date optional
from_date Earliest publication date (YYYY-MM-DD), for example 2026-09-01.
Not set
- Max Results optional
max_results Maximum articles on a page, for example 20.
50
Whole number from 1 to 50. Default
20.
Input as JSON
{ "query": "Tesla", "max_results": 50}Output
{ "articles": [ { "link": "https://www.dailymail.co.uk/lifestyle/fashion/article-16161311/lauren-sanchez-diamond-necklace-cost-state-dinner-xi-jinping.html" , "authors": [ "Raven Saunt" ], "section": "Fashion", "summary": "The 56-year-old looked radiant at the state dinner for Xi Jinping earlier this week - but it was not just her physique that caught the eye.", "headline": "Eye-watering cost of Lauren Sanchez's diamond necklace revealed after wowing at state dinner", "published_at": "2026-09-26T16:59:11+01:00" }, { "link": "https://www.dailymail.co.uk/galleries/article-16161153/Tiffany-Trump-stuns-golden-gown-White-House-state-dinner.html" , "authors": [ "Raven Saunt" ], "section": "Galleries", "summary": "The 32-year-old showcased her sense of style at the black tie gathering at the White House in Washington, DC, on Thursday evening.", "headline": "Tiffany Trump stuns in golden gown at White House state dinner", "published_at": "2026-09-25T18:23:56+01:00" }, { "link": "https://www.dailymail.co.uk/lifestyle/fashion/article-16159143/tiffany-trump-gown-state-dinner-xi-jinping-white-house.html" , "authors": [ "Raven Saunt" ], "section": "Fashion", "summary": "The 32-year-old showcased her sense of style at the black tie gathering at the White House in Washington, DC, on Thursday evening.", "headline": "Tiffany Trump looks ethereal in flowing golden gown at state dinner for Xi Jinping", "published_at": "2026-09-25T05:33:52+01:00" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"dailymail.co.uk/search_news","input":{"query":"Tesla","max_results":50}}' # 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": "dailymail.co.uk/search_news" , "input": { "query": "Tesla", "max_results": 50 }})# 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": "dailymail.co.uk/search_news" , "input": { "query": "Tesla", "max_results": 50 } }), 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 dailymail.co.uk/search_news# with {"query":"Tesla","max_results":50}"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": [ "query" ], "properties": { "page": { "type": "integer", "default": 1, "minimum": 1, "description": "Page of article results, for example 1." }, "sort": { "enum": [ "newest", "most_relevant" ], "type": "string", "default": "newest", "description": "Sort by newest or most relevant, for example newest." }, "query": { "type": "string", "minLength": 1, "description": "Words to search for, for example Tesla." }, "to_date": { "type": "string", "description": "Latest publication date (YYYY-MM-DD), for example 2026-09-29." }, "from_date": { "type": "string", "description": "Earliest publication date (YYYY-MM-DD), for example 2026-09-01." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum articles on a page, for example 20." } }}Output schema
{ "type": "object", "required": [ "articles" ], "properties": { "articles": { "type": "array", "items": { "type": "object", "required": [ "headline", "summary", "published_at", "authors", "section", "link" ], "properties": { "link": { "type": "string" }, "authors": { "type": "array", "items": { "type": "string" } }, "section": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "published_at": { "type": "string" } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
dailymail.co.uk/search_news- Returns
- headline, summary, published time, authors, section, 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 dailymail.co.uk/search_news with the inputs above.
Ask your agent
- Find the latest Daily Mail articles about the Princess of Wales, with headlines, authors and when they were published
- What has been written about the junior doctors' strike between 2025-03-01 and 2025-03-31? Give me the most relevant pieces first.
- Show me page 2 of recent news stories mentioning Erling Haaland, 30 per page
- Pull up dailymail.co.uk coverage of the Reform UK party since 2025-06-01, newest first, including each article's section and link
- I need articles on Ozempic weight loss side effects, sorted by relevance, just the top 10 with summaries
See more
All Daily Mail methodsReads a public Daily Mail article from its link, or from a headline (the best-matching result of the site's search), and returns its text and details; live blogs give the latest entries shown on the page.
dailymail.co.uk/read_articleFinds BBC News articles matching search words, newest first or by relevance, with publication time, authors, section and summary, optionally limited to a date range. Date filters and newest order apply to the first 180 search matches; older or less relevant matches may be missed.
bbc.com/search_newsSearches 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_newsSearches 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_newsSearches New York Times article headlines and summaries by keyword, optionally within a date range, and returns matching articles with dates, authors, sections and links, newest or most relevant first.
nytimes.com/search_newsSearches Reuters articles by keyword through Google News, with optional publication date range, order and page. Summaries and bylines are filled in when Reuters serves the article page.
reuters.com/search_newsSearches Dailymotion videos by keywords, ordered by relevance, newest upload, or most views. Returns up to 100 public results.
dailymotion.com/search_videosSearches Fox News articles by keyword, with date filtering, ordering and pagination, over the first 100 matches.
foxnews.com/search_news