National Archives and Records Administration (NARA)
The National Archives and Records Administration (NARA) is the nation's record keeper, preserving and providing access to federal government records that document the rights of American citizens and the actions of their government.
1 APIs
0 Features
ArchivesFederal GovernmentRecordsCatalog
APIs
National Archives Catalog API
The National Archives Catalog API is a read-write web API for the National Archives Catalog used to perform fielded search of archival metadata, bulk export of metadata and digi...
Collections
NextGen Catalog API
OPENPricing Plans
Rate Limits
FinOps
Resources
Sources
opencollection: 1.0.0
info:
name: NextGen Catalog API
version: 0.2.0
items:
- info:
name: Records
type: folder
items:
- info:
name: Get records by using url parameters to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
- name: searchAfter
value: '12345'
type: query
description: 'Enables deep pagination to retrieve records beyond the first 10,000 results. Not compatible with sort,
or page parameters.
For the inital request use `searchAfter=`* and for all subsequent requests set `searchAfter` to the value of the
sort array in the last member of `body.hits.hits` for each page.
'
- name: sourceIncludes
value: naId,title,digitalObjects.objectUrl
type: query
description: Limits the response by specifying which fields from `_source.record` should be included in the response.
- name: title
value: ''
type: query
description: A title search string used to search for a record. Matches record.title fields within decsription records
and record.heading fields within authority records.
- name: title_is
value: ''
type: query
description: An exact title of a record. Fully matches record.title fields within description records and record.heading
fields within authority records.
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: naId_is
value: '146919092'
type: query
description: An exact NARA-specific identifier to locate a specific record. This currently functions exactly as naId.
- name: digitalObjectCount
value: ''
type: query
description: Gets a count of Digital Objects
- name: availableOnline
value: ''
type: query
description: Refers to records at the Item and File Unit levels which contain digital objects and can be viewed online
- name: levelOfDescription
value: ''
type: query
description: Describes the NARA-specific hierarchical level in which a record exists.
- name: personOrOrg
value: ''
type: query
description: Refers to the heading of authoity records, or headings of roles in archival descriptions. Results can
be either descriptions or authority records.
- name: dataSource
value: ''
type: query
description: Describes the type of record as either a description or an authority.
- name: typeOfMaterials
value: ''
type: query
description: Describes the type(s) of materials associated with an Archival Description
- name: controlNumbers
value: '1667751'
type: query
description: 'Specifies an All Control Numbers search string used to search for an archival record and returns Archival
Descriptions that contain the keywords in one of the following fields:
* record.accessionNumbers.keyword
* record.localIdentifier.keyword
* record.importRecordControlNumber.keyword
* record.internalTransferNumbers.keyword
* record.naId
* record.recordsCenterTransferNumbers.keyword
* record.variantControlNumbers.number.keyword
* record.microformPublications.identifier.keyword
'
- name: localIdentifier
value: 21-A-1, 21-A-2
type: query
description: A search query string used to search on record.localIdentifier.keyword and returns Archival Descriptions
that contain the keywords in the Local Identifier field.
- name: localIdentifier_is
value: 121-BA-7112C
type: query
description: Specifies an exact, full Local Identifier associated with an archival record and returns an Archival
Description which contain this ID.
- name: microformPublicationsIdentifier
value: M236, T498
type: query
description: A search query string used to search on record.microformPublications.identifier.keyword and returns Archival
Descriptions that contain the keywords in the Microform Publication Identifier field.
- name: microformPublicationsIdentifier_is
value: M236
type: query
description: Specifies an exact, full Microform Publications Identifier associated with an archival record and returns
an Archival Description which contain this ID.
- name: variantControlNumber_is
value: HD1-318515834
type: query
description: Specifies an exact, full Variant Control Number associated with an archival record and returns an Archival
Description which contain this Variant Control Number.
- name: variantControlType
value: HMS Asset ID
type: query
description: Specifies an type of Variant Control Number associated with archival record(s), and returns all Archival
Descriptions which contain a Variant Control Type with these keywords.
- name: variantControlType_is
value: HMS Asset ID
type: query
description: Specifies an exact type of Variant Control Number associated with archival record(s) and returns all
Archival Descriptions which contain this exact Variant Control Type.
- name: controlGroup
value: '358'
type: query
description: Specifies a Control Group number associated with an archival record and returns an Archival Description
or Archival Descriptions within this Control Group.
- name: collectionIdentifier
value: DDE-1021
type: query
description: A parameter which searches records against the record.collectionIdentifier and record.ancestors.collectionIdentifier
fields.
- name: recordGroupNumber
value: '428'
type: query
description: A parameter which searches records against the record.recordGroupNumber and record.ancestors.recordGroupNumber
fields.
- name: creators
value: Department of Defense. Department of the Navy. Naval Photographic Center. (12/1/1959 - ca. 1998)
type: query
description: A parameter which searches records against the record.creators.heading fields.
- name: objectType
value: JPG, PDF
type: query
description: A parameter which searches records against the record.digitalObjects.objectType field. Accepts multiple
values separated by commas.
- name: referenceUnits
value: National Archives at College Park - Motion Pictures
type: query
description: A parameter which searches records against the record.physicalOccurrences.referenceUnits.name fields.
Accepts multiple values separated by commas.
- name: geographicReference
value: Katmai, Mount (Alaska)
type: query
description: A parameter which searches records against the record.subjects.heading fields where the record.subjects.authorityType
field is equal to geographicPlaceName.
- name: ancestorNaId
value: '75284'
type: query
description: Specifies the naId of an ancestor object in the hierarchy, by which to limit the search
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
- name: startDate
value: '1920-01-01'
type: query
description: 'Date representing the start date of a range of dates. Must be in YYYY-MM-DD, YYYY-MM, or YYYY format
and must be in the same format as endDate parameter, if one is provided.
Only ancestors with levelOfDescription as ''series'' will have their date fields searched.
Searches the following date fields:
* record.productionDates.logicalDate
* record.copyrightDates.logicalDate
* record.releaseDates.logicalDate
* record.broadcastDates.logicalDate
* record.coverageStartDate.logicalDate
* record.coverageEndDate.logicalDate
* record.inclusiveStartDate.logicalDate
* record.inclusiveEndDate.logicalDate
* record.ancestors.inclusiveStartDate.logicalDate
* record.ancestors.inclusiveEndDate.logicalDate
'
- name: endDate
value: '2022-10-06'
type: query
description: 'Date representing the end date of a range of dates. Must be in YYYY-MM-DD, YYYY-MM, or YYYY format and
must be in the same format as startDate parameter, if one is provided.
Only ancestors with levelOfDescription as ''series'' will have their date fields searched.
Searches the following date fields:
* record.productionDates.logicalDate
* record.copyrightDates.logicalDate
* record.releaseDates.logicalDate
* record.broadcastDates.logicalDate
* record.coverageStartDate.logicalDate
* record.coverageEndDate.logicalDate
* record.inclusiveStartDate.logicalDate
* record.inclusiveEndDate.logicalDate
* record.ancestors.inclusiveStartDate.logicalDate
* record.ancestors.inclusiveEndDate.logicalDate
'
- name: fieldName_exists
value: levelOfDescription_exists=true
type: query
description: A parameter specifying any field name in the form of [fieldName]_exists where, when equal to true, returns
results where that field exists with non-null data. If false, returns results where the field does not exist. Accepts
nested fields at any level, for example `ancestors.inclusiveEndDate_exists=true`
- name: contributions_exist
value: ''
type: query
description: When equal to true, returns results which have contributions. If false, returns results which do not
have any contributions.
- name: tags_exist
value: ''
type: query
description: When equal to true, returns results which have tags. If false, returns results which do not have any
tags.
- name: transcriptions_exist
value: ''
type: query
description: When equal to true, returns results which have transcriptions. If false, returns results which do not
have any transcriptions.
- name: comments_exist
value: ''
type: query
description: When equal to true, returns results which have comments. If false, returns results which do not have
any comments.
- name: exactDate
value: '2022-10-06'
type: query
description: 'A single date. Must be in YYYY-MM-DD format. Cannot be used with other date search parameters. Used
to search for records with dates that match exactly or that match the year and month but do not have a day
Only ancestors with levelOfDescription as ''series'' will have their date fields searched.
Searches the following date fields:
* record.productionDates
* record.copyrightDates
* record.releaseDates
* record.broadcastDates
* record.coverageStartDate
* record.coverageEndDate
* record.inclusiveStartDate
* record.inclusiveEndDate
* record.ancestors.inclusiveStartDate
* record.ancestors.inclusiveEndDate
'
- name: fieldName_is_not
value: title_is_not=1974%20Ottawa%20NWR
type: query
description: A parameter specifying any field name in the form of [fieldName]_is_not where, when equal to the given
value, will be excluded from the search results. Including nonexistent/invalid fields will return an appropriate
error response.
- name: recurringDateDay
value: '31'
type: query
description: 'A day in DD format. Often used with recurringDateMonth. Used to search for records with date fields
that match the day, regardless of the year.
Only ancestors with levelOfDescription as ''series'' will have their date fields searched.
Searches the following date fields:
* record.productionDates.day
* record.copyrightDates.day
* record.releaseDates.day
* record.broadcastDates.day
* record.coverageStartDate.day
* record.coverageEndDate.day
* record.inclusiveStartDate.day
* record.inclusiveEndDate.day
* record.ancestors.inclusiveStartDate.day
* record.ancestors.inclusiveEndDate.day
'
- name: recurringDateMonth
value: '12'
type: query
description: 'A month in MM format. Often used with recurringDateDay. Used to search for recorrds with date fields
that match the month, regardless of the year.
Only ancestors with levelOfDescription as ''series'' will have their date fields searched.
Searches the following date fields
* record.productionDates.month
* record.copyrightDates.month
* record.releaseDates.month
* record.broadcastDates.month
* record.coverageStartDate.month
* record.coverageEndDate.month
* record.inclusiveStartDate.month
* record.inclusiveEndDate.month
* record.ancestors.inclusiveStartDate.month
* record.ancestors.inclusiveEndDate.month
'
- name: beginCongress
value: '2'
type: query
description: Filters search results to just those from this congress or later. Based on `record.beginCongress` field.
- name: endCongress
value: '100'
type: query
description: Filters search results to just those from this congress or earlier. Based on `record.endCongress` field.
- name: congressNumber
value: '55'
type: query
description: Filters search results to whose range of congresses includes this value. Based on `record.beginCongress`
and `record.endCongress`. Cannot be used with other congress parameters.
- name: tagContribution
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("") and searches for a tag contribution.
- name: commentContribution
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("") and searches for a comment contribution.
- name: transcriptionContribution
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("") and searches for a transcription contribution.
- name: extractedTextContribution
value: ''
type: query
description: A contribution search string used to search for a record. Matches the otherExtractedText.contribution
or extractedText fields within digitalObjects.
- name: includeExtractedText
value: 'true'
type: query
description: Allows for the inclusion of OCR text extracted from the digital object in `record.digitalObjects.extractedText`
to be included in the response if any exists. Defaults to false.
- name: includeOtherExtractedText
value: 'true'
type: query
description: Allows for the inclusion of other extracted text contributed by NARA partners in `record.digitalObjects.otherExtractedText`
to be included in the response if any exists. Defaults to false.
- name: ingestTimeStart
value: '2025-01-13'
type: query
description: "The ingestTimeStart parameter specifies the date or timestamp for fetching data.\n\nDate only format:\
\ YYYY-MM-DD\n When provided in this format, the time defaults to 00:00:00.000000.\n Example: 2025-01-13 →\
\ interpreted as 2025-01-13 00:00:00.000000\n\n Full timestamp format: YYYY-MM-DD HH:mm:ss.SSSSSS\n When provided\
\ in this format, data will be fetched for the exact timestamp specified.\n Example: 2025-01-13 14:30:15.123456\
\ → data fetched at this precise datetime\n\nBehavior:\n If both ingestTimeStart and ingestTimeEnd are provided,\
\ description records within that date/time range are retrieved.\n If only ingestTimeStart is provided, description\
\ records on and after that date/time are retrieved.\n If only ingestTimeEnd is provided, description records\
\ on and before that date/time are retrieved.\n"
- name: ingestTimeEnd
value: '2025-01-13'
type: query
description: "The ingestTimeEnd parameter specifies the date or timestamp for fetching data.\n\nDate only format:\
\ YYYY-MM-DD\n When provided in this format, the time defaults to 23:59:59.999999\n Example: 2025-01-13 →\
\ interpreted as 2025-01-13 23:59:59.999999\n\n Full timestamp format: YYYY-MM-DD HH:mm:ss.SSSSSS\n When provided\
\ in this format, data will be fetched for the exact timestamp specified.\n Example: 2025-01-13 14:30:15.123456\
\ → data fetched at this precise datetime\n\nBehavior:\n If both ingestTimeStart and ingestTimeEnd are provided,\
\ description records within that date/time range are retrieved.\n If only ingestTimeStart is provided, description\
\ records on and after that date/time are retrieved.\n If only ingestTimeEnd is provided, description records\
\ on and before that date/time are retrieved.\n"
docs: Get records by using url parameters to perform a catalog search. Returns a JSON result.
- info:
name: Get records by using other extracted text to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search/by-other-extracted-text
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
docs: Get records by using other extracted text to perform a catalog search. Returns a JSON result.
- info:
name: Get records related to contributions by using url parameters to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search/by-contribution
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: userName
value: johndoe1
type: query
description: Contributor's screen name which maps to the record.contributor.userName field
- name: userId
value: 55555555-5555-5555-5555-555555555555
type: query
description: Contributor's unique identifier which maps to the record.contributor.userId field
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
docs: Get records related to contributions by using url parameters to perform a catalog search. Returns a JSON result.
- info:
name: Get records related to tags by using url parameters to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search/by-tag
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: userName
value: johndoe1
type: query
description: Contributor's screen name which maps to the record.contributor.userName field
- name: userId
value: 55555555-5555-5555-5555-555555555555
type: query
description: Contributor's unique identifier which maps to the record.contributor.userId field
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
- name: tag_is
value: Bill Clinton
type: query
description: Specifies exactly the tag by which to match the search to.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
docs: Get records related to tags by using url parameters to perform a catalog search. Returns a JSON result.
- info:
name: Get records related to transcriptions by using url parameters to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search/by-transcription
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: userName
value: johndoe1
type: query
description: Contributor's screen name which maps to the record.contributor.userName field
- name: userId
value: 55555555-5555-5555-5555-555555555555
type: query
description: Contributor's unique identifier which maps to the record.contributor.userId field
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
docs: Get records related to transcriptions by using url parameters to perform a catalog search. Returns a JSON result.
- info:
name: Get records related to comments by using url parameters to perform a catalog search.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/search/by-comment
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: userName
value: johndoe1
type: query
description: Contributor's screen name which maps to the record.contributor.userName field
- name: userId
value: 55555555-5555-5555-5555-555555555555
type: query
description: Contributor's unique identifier which maps to the record.contributor.userId field
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
docs: Get records related to comments by using url parameters to perform a catalog search. Returns a JSON result.
- info:
name: Get records which are immediate children of a specified parentNaId.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/records/parentNaId/:parentNaId
params:
- name: parentNaId
value: '7005'
type: path
description: id of parent whose immediate children to return
- name: controlGroup
value: '358'
type: query
description: Specifies a Control Group number associated with an archival record and returns an Archival Description
or Archival Descriptions within this Control Group.
- name: page
value: '20'
type: query
description: Page number of the paginated result set in which to return.
- name: limit
value: '75'
type: query
description: Maximum number of results returned for each page of paginated data.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
- name: abbreviated
value: 'true'
type: query
description: Abbreviated results flag, which when true, returns a shorter version of the results.
- name: ingestTimeStart
value: '2025-01-13'
type: query
description: "The ingestTimeStart parameter specifies the date or timestamp for fetching data.\n\nDate only format:\
\ YYYY-MM-DD\n When provided in this format, the time defaults to 00:00:00.000000.\n Example: 2025-01-13 →\
\ interpreted as 2025-01-13 00:00:00.000000\n\n Full timestamp format: YYYY-MM-DD HH:mm:ss.SSSSSS\n When provided\
\ in this format, data will be fetched for the exact timestamp specified.\n Example: 2025-01-13 14:30:15.123456\
\ → data fetched at this precise datetime\n\nBehavior:\n If both ingestTimeStart and ingestTimeEnd are provided,\
\ description records within that date/time range are retrieved.\n If only ingestTimeStart is provided, description\
\ records on and after that date/time are retrieved.\n If only ingestTimeEnd is provided, description records\
\ on and before that date/time are retrieved.\n"
- name: ingestTimeEnd
value: '2025-01-13'
type: query
description: "The ingestTimeEnd parameter specifies the date or timestamp for fetching data.\n\nDate only format:\
\ YYYY-MM-DD\n When provided in this format, the time defaults to 23:59:59.999999\n Example: 2025-01-13 →\
\ interpreted as 2025-01-13 23:59:59.999999\n\n Full timestamp format: YYYY-MM-DD HH:mm:ss.SSSSSS\n When provided\
\ in this format, data will be fetched for the exact timestamp specified.\n Example: 2025-01-13 14:30:15.123456\
\ → data fetched at this precise datetime\n\nBehavior:\n If both ingestTimeStart and ingestTimeEnd are provided,\
\ description records within that date/time range are retrieved.\n If only ingestTimeStart is provided, description\
\ records on and after that date/time are retrieved.\n If only ingestTimeEnd is provided, description records\
\ on and before that date/time are retrieved.\n"
docs: Get records which are immediate children of a specified parentNaId. Returns a JSON result.
- info:
name: Tags
type: folder
items:
- info:
name: Get search results for tag data by sending a request with search parameters to the catalog.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/tags/search
params:
- name: q
value: ''
type: query
description: A search query string which accepts boolean operators (AND, OR, NOT), wildcards (*), and exact phrases
("").
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: userName
value: johndoe1
type: query
description: Contributor's screen name which maps to the record.contributor.userName field
- name: userId
value: 55555555-5555-5555-5555-555555555555
type: query
description: Contributor's unique identifier which maps to the record.contributor.userId field
- name: naId
value: 146919092, 146919093
type: query
description: An array of NARA-specific identifiers, each of which is unique to a single record.
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
docs: Get search results for tag data by sending a request with search parameters to the catalog. Returns a JSON result.
- info:
name: Get a single tag object by tag id.
type: http
http:
method: GET
url: https://catalog.archives.gov/api/v2/tags/:id
params:
- name: id
value: 55555555-5555-5555-5555-555555555555
type: query
description: An individual contribution's unique identifier which maps to the record.contributionId field
- name: debug
value: 'true'
type: query
description: Turns on debug mode, showing metadata in the response body, if set to true.
docs: Get a single tag object by tag id. Returns a JSON result.
- info:
name: Get tags by
# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/national-archives-and-records-administration-nara-/refs/heads/main/apis.yml