The New York Times API: Search articles
Searches 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.
Unofficial. Not affiliated with or endorsed by The New York Times.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Page optional
page Page number starting at 1, for example 2.
1 (default)
Whole number 1 or more.
- Sort optional
sort Order results by newest or most relevant, for example newest.
newest (default)
One of
newest,most_relevant.- Query, required
query Words to search in New York Times articles, for example Tesla.
Tesla
- To Date optional
to_date Latest publication date, inclusive, as YYYY-MM-DD, for example 2026-09-28.
Not set
- From Date optional
from_date Earliest publication date, inclusive, as YYYY-MM-DD, for example 2026-09-01.
Not set
- Max Results optional
max_results Maximum articles on this page, up to 50, for example 20.
20 (default)
Whole number from 1 to 50.
Input as JSON
{ "query": "Tesla"}Output
{ "articles": [ { "authors": [ "Jack Ewing" ], "section": "Business", "summary": "The National Highway Traffic Safety Administration said it would examine whether the company’s new self-driving taxi, which has no steering wheel, meets federal auto regulations.", "headline": "Tesla’s Cybercab Is Being Investigated by Federal Regulators", "article_link": "https://www.nytimes.com/2026/09/04/business/tesla-cybercab-nhtsa-investigation.html" , "published_at": "2026-09-04T13:19:46+00:00" }, { "authors": [ "Jack Ewing" ], "section": "Business", "summary": "The new Cybercab embodies Elon Musk’s vision of cars that drive themselves, but it is not clear when the vehicle will be widely available.", "headline": "Tesla Begins Offering Rides in a Car Without a Steering Wheel", "article_link": "https://www.nytimes.com/2026/09/03/business/tesla-cybercab-robotaxi-rides.html" , "published_at": "2026-09-03T22:12:46+00:00" }, { "authors": [ "Keith Bradsher and Jack Ewing" ], "section": "Business", "summary": "China’s regulator ordered changes after vehicle occupants sometimes had difficulty exiting electric cars, an issue that has led to lawsuits against Tesla in the United States.", "headline": "In China’s Biggest Car Recall, Tesla and 8 Others Will Address Door Safety", "article_link": "https://www.nytimes.com/2026/08/21/business/china-car-recall-doors.html" , "published_at": "2026-08-21T15:09:20+00:00" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"nytimes.com/search_news","input":{"query":"Tesla"}}' # 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": "nytimes.com/search_news" , "input": { "query": "Tesla" }})# 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": "nytimes.com/search_news" , "input": { "query": "Tesla" } }), 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 nytimes.com/search_news# with {"query":"Tesla"}"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 number starting at 1, for example 2." }, "sort": { "enum": [ "newest", "most_relevant" ], "type": "string", "default": "newest", "description": "Order results by newest or most relevant, for example newest." }, "query": { "type": "string", "minLength": 1, "description": "Words to search in New York Times articles, for example Tesla." }, "to_date": { "type": "string", "description": "Latest publication date, inclusive, as YYYY-MM-DD, for example 2026-09-28." }, "from_date": { "type": "string", "description": "Earliest publication date, inclusive, as YYYY-MM-DD, for example 2026-09-01." }, "max_results": { "type": "integer", "default": 20, "maximum": 50, "minimum": 1, "description": "Maximum articles on this page, up to 50, for example 20." } }}Output schema
{ "type": "object", "required": [ "articles" ], "properties": { "articles": { "type": "array", "items": { "type": "object", "required": [ "headline", "summary", "published_at", "authors", "section", "article_link" ], "properties": { "authors": { "type": "array", "items": { "type": "string" } }, "section": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "headline": { "type": "string" }, "article_link": { "type": "string", "format": "uri" }, "published_at": { "type": "string", "format": "date-time" } } }, "description": "New York Times articles matching the search." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
nytimes.com/search_news- Returns
- headline, summary, published date, authors, section, 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 nytimes.com/search_news with the inputs above.
Ask your agent
- Find New York Times articles about the Federal Reserve interest rate decision published between 2025-03-01 and 2025-03-31, newest first
- What has the Times written about Ozempic and weight loss drugs? Give me the most relevant pieces with authors and links
- Pull up 10 articles mentioning Taylor Swift from the last two weeks of October 2024, including headline, date and section
- search nytimes.com for coverage of the Maui wildfires, sorted by relevance, show me page 2 of results
- I need recent reporting on OpenAI's leadership shakeup — headlines, summaries and article URLs, up to 30 results
See more
All The New York Times methodsLists current New York Times headlines with summaries, authors, images and publication times, in the order shown on the chosen section page (top stories or a section). Video-only items, ads and promotions are left out; times come from the section's feed and may be missing.
nytimes.com/list_headlinesGets a New York Times Best Sellers list by its name for the latest issue, or for the issue covering a given date. Monthly lists use their issue month.
nytimes.com/list_best_sellersSearches 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 NPR-published articles by keyword, newest first or by best match, with optional publication dates, and returns each article's date, authors, section and summary.
npr.org/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 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_newsFinds 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 Fox News articles by keyword, with date filtering, ordering and pagination, over the first 100 matches.
foxnews.com/search_news