National Archives API: Search records
Searches public National Archives Catalog records by keywords, year range, material type and online availability, in catalog relevance order.
Unofficial. Not affiliated with or endorsed by National Archives.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Page optional
page Page of matching results, for example 2.
1 (default)
Whole number 1 or more.
- Query, required
query Keywords to find in catalog records, for example Apollo 11.
Apollo 11
- End Year optional
end_year Latest year to search, for example 1969.
Not set
Whole number from 1 to 2100.
- Start Year optional
start_year Earliest year to search, for example 1960.
Not set
Whole number from 1 to 2100.
- Max Results optional
max_results Number of records per page, for example 20.
20 (default)
Whole number from 1 to 100.
- Online Only optional
online_only Whether to include only digitized records, for example true.
false (default)
True or false.
- Record Type optional
record_type Material type to include, for example photographs.
any (default)
One of
any,textual records,photographs,maps,moving images,sound recordings.
Input as JSON
{ "query": "Apollo 11"}Output
{ "records": [ { "date": null, "title": "Apollo 11", "digitized": true, "image_links": [], "record_type": "Moving Images", "catalog_link": "https://catalog.archives.gov/id/7500" , "record_group": "Record Group 40: General Records of the Department of Commerce", "creating_agency": "Department of Commerce. Office of Public Affairs. Audiovisual Division. (ca. 1990 - ca. 1996)", "short_description": null, "national_archives_identifier": "7500" }, { "date": "July 22, 2014", "title": "Apollo 11", "digitized": true, "image_links": [ "https://catalog.archives.gov/medialz/presidential-libraries/obama/bho-ero/217848857/Twitter_Shin-Inouye_2014-07-22_03.jpg" ], "record_type": "Photographs and other Graphic Materials", "catalog_link": "https://catalog.archives.gov/id/231832753" , "record_group": "Collection BHO-ERO: Electronic Records of the Office of the President (Obama Administration)", "creating_agency": "President (2009-2017 : Obama). Office of Communications. (1/20/2009 - 1/20/2017)" , "short_description": "Original post: Statement by the President on Meeting with the Crew and Family of #Apollo11: wh.gov/lMkoQ #Apollo45 pic.twitter.com/UJAQSINFwN" , "national_archives_identifier": "231832753" }, { "date": "1969", "title": "Apollo 11 Commemorative Token", "digitized": true, "image_links": [ "https://catalog.archives.gov/medialz/presidential-libraries/obama/bho-ac/132981130/Batch0002/132981130_202011_001.JPG" , "https://catalog.archives.gov/medialz/presidential-libraries/obama/bho-ac/132981130/Batch0002/132981130_202011_002.JPG" ], "record_type": "Artifacts", "catalog_link": "https://catalog.archives.gov/id/219756158" , "record_group": "Collection BHO-AC: Barack Obama Artifact Collection", "creating_agency": "National Archives and Records Administration. Office of the Chief Operating Officer. Legislative Archives, Presidential Libraries, and Museum Services. Office of Presidential Libraries. Barack Obama Presidential Library. (2016 - )", "short_description": "Commemorative token for the 1969 Apollo 11 moon landing. The token is gold in color with the embossed image of the lunar module on the moon's surface and two astronauts on the front. The back has an embossed quote from Neil Armstrong over the image of the moon.", "national_archives_identifier": "219756158" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"catalog.archives.gov/search_records","input":{"query":"Apollo 11"}}' # 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": "catalog.archives.gov/search_records" , "input": { "query": "Apollo 11" }})# 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": "catalog.archives.gov/search_records" , "input": { "query": "Apollo 11" } }), 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 catalog.archives.gov/search_records# with {"query":"Apollo 11"}"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 matching results, for example 2." }, "query": { "type": "string", "minLength": 1, "description": "Keywords to find in catalog records, for example Apollo 11." }, "end_year": { "type": "integer", "maximum": 2100, "minimum": 1, "description": "Latest year to search, for example 1969." }, "start_year": { "type": "integer", "maximum": 2100, "minimum": 1, "description": "Earliest year to search, for example 1960." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Number of records per page, for example 20." }, "online_only": { "type": "boolean", "default": false, "description": "Whether to include only digitized records, for example true." }, "record_type": { "enum": [ "any", "textual records", "photographs", "maps", "moving images", "sound recordings" ], "type": "string", "default": "any", "description": "Material type to include, for example photographs." } }}Output schema
{ "type": "object", "required": [ "records" ], "properties": { "records": { "type": "array", "items": { "type": "object", "required": [ "title", "date", "record_type", "creating_agency", "record_group", "short_description", "digitized", "image_links", "catalog_link", "national_archives_identifier" ], "properties": { "date": { "type": [ "string", "null" ] }, "title": { "type": "string" }, "digitized": { "type": "boolean" }, "image_links": { "type": "array", "items": { "type": "string" } }, "record_type": { "type": [ "string", "null" ] }, "catalog_link": { "type": "string" }, "record_group": { "type": [ "string", "null" ] }, "creating_agency": { "type": [ "string", "null" ] }, "short_description": { "type": [ "string", "null" ] }, "national_archives_identifier": { "type": "string" } }, "additionalProperties": false }, "description": "Matching catalog records in relevance order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
catalog.archives.gov/search_records- Returns
- title, date, record type, creating agency, record group, description, image links, catalog link, NAID
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 catalog.archives.gov/search_records with the inputs above.
Ask your agent
- Find digitized photographs from the 1960s about the Apollo 11 mission in the National Archives catalog
- Show me online-only textual records on the Civil War from 1861 to 1865
- I need National Archives maps of Washington D.C. from the 1800s, sorted by relevance
- Search archives.gov for moving images covering the Vietnam War between 1965 and 1973
- Look up sound recordings in the National Archives catalog about the Great Depression, 1929 to 1939, 25 results per page
See more
Searches NASA public photos, videos or audio by words and creation year, returning matches in relevance order with thumbnails and full-size file links.
nasa.gov/search_imagesSearches historic U.S. newspaper pages (Chronicling America) by text, with optional state and issue-year filters. Returns relevance-ranked page records with snippets and image links; newspaper OCR may contain transcription errors.
loc.gov/search_historic_newspapersSearches Library of Congress digital collections by keywords, material format and date range, in Library search relevance order. Rights notes may be unavailable for some records.
loc.gov/search_collectionsSearches UK court judgments and tribunal decisions on Find Case Law by keywords or party names. Results can be filtered by court and by judgment date.
caselaw.nationalarchives.gov.uk/search_judgmentsFinds NIH research grants by topic, organisation, or researcher name. Searches the last five fiscal years by default.
reporter.nih.gov/search_grantsSearches 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_newsLists Wayback Machine captures of a web page, oldest first, with HTTP status and whether the content changed since the previous capture.
web.archive.org/list_snapshotsSearches 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_news