canonical: https://jentic.com/apis/catalog.archives.gov/nara-catalog

# Catalog Archives Gov NextGen Catalog API

Jentic publishes the only available OpenAPI specification for the NextGen Catalog API, keeping it validated and agent-ready. The NextGen Catalog API is the U.S. National Archives (NARA) Catalog interface for searching records, parent-child record hierarchies, and citizen contributions such as tags, comments, and transcriptions. Read endpoints expose the catalog's metadata, while authenticated write endpoints accept new tags, comments, and transcriptions tied to a UUID userId. Researchers, civic-tech tools, and digital humanities projects use it to embed primary source material from the National Archives directly into their applications.

## For AI agents

Search the U.S. National Archives Catalog for historical records and submit citizen contributions such as tags, comments, and transcriptions against records.

## Scope

Does not handle digital file downloads, FOIA requests, or user account management - use for catalog search and citizen contributions on the NARA NextGen Catalog only.

## Capabilities

- Search the National Archives Catalog by keyword and metadata filters
- Walk the catalog hierarchy by retrieving the immediate children of a parent NaId
- Search records by tag or by the contribution metadata around them
- Add a tag to a National Archives record on behalf of a registered userId
- Submit a comment against a record for citizen annotation workflows
- Submit a transcription of handwritten or scanned record text
- Search and read existing tags, comments, and contributions across the catalog

## Use cases

### Digital humanities research portal

Academic and library projects can use GET `/records/search` and GET `/records/parentNaId/{parentNaId}` to embed live National Archives metadata in their research portals, walking record hierarchies and surfacing extracted text alongside the user's own annotations. This lets a niche audience search NARA without scraping the public website.

Example prompt: GET `/records/search` with q='Apollo 11' and pageSize=25, then return the title and naId of each result.

### Citizen transcription workflows

Crowdsourced transcription platforms can submit user-contributed text via POST /transcriptions/ and tags via POST /tags/, attached to a UUID userId in the body. This makes it possible to build a transcription UI on top of NARA records that writes back to the canonical catalog.

Example prompt: POST /transcriptions/ with naId of the target record, the transcribed text, and the contributor's userId UUID.

### Tag-driven record discovery

Educators and journalists can pull records associated with topical tags using GET `/records/search/by-tag` and present curated collections that update as new contributions land. Combined with GET `/tags/search`, this turns the National Archives into a tag-faceted research surface for classroom use.

Example prompt: GET `/records/search/by-tag` with tag='vietnam-war' to retrieve the matching records for a classroom resource page.

### AI agent archival research via Jentic

An AI research assistant can call the National Archives Catalog to retrieve primary sources and submit transcriptions as a citizen contributor through Jentic. The x-api-key issued by NARA stays in your Jentic One instance and is injected at execution time, so the agent never holds the key directly.

Example prompt: Search Jentic for 'search the National Archives Catalog', load GET `/records/search`, and execute it with the user's research query.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/records/search` | Keyword search across catalog records |
| GET | `/records/parentNaId/{parentNaId}` | Get child records under a parent NaId |
| GET | `/records/search/by-tag` | Search records by applied tag |
| POST | `/tags/` | Add a tag to a record |
| POST | `/comments/` | Add a comment to a record |
| POST | `/transcriptions/` | Submit a transcription against a record |
| GET | `/contributions/search` | Search citizen-contribution metadata |

## Key resources

- **Records** — Search and traverse archival records by keyword, parent NaId, contribution, or tag.
- **Tags** — Search, read, and add tags applied to records by registered users.
- **Comments** — Search and read comments, and post new comments tied to a userId.
- **Transcriptions** — Submit transcribed text for handwritten or scanned record content.
- **Contributions** — Search aggregate citizen-contribution metadata across the catalog.

## Why Jentic

- **Setup:** Wiring the NextGen Catalog API by hand means sending your x-api-key header on every call and supplying the required userId UUID on write calls against the catalog.archives.gov host yourself. Through Jentic you install once, import the NextGen Catalog API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The NARA write operations carry tags, comments, and transcriptions in the request body rather than a resource path, so you scope by operation: limit the agent to the ones it needs, such as searching records and browsing by parentNaId, and leave tag, comment, and transcription writes out of the allowed set until you want them.
- **Credential handling:** Your NARA x-api-key is stored once, encrypted, by your own Jentic One instance and injected into the x-api-key header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search the National Archives Catalog' or 'submit a transcription', and Jentic returns the matching operation with its input schema, including the required userId UUID for write calls, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Congress.gov API** — Congress.gov complements NARA records with current legislative texts and member metadata.
- **Data.gov API** — Data.gov surfaces additional federal datasets that pair well with archival metadata.
- **Wikimedia API** — Wikimedia provides crowd-sourced encyclopedic content that overlaps thematically with archival research.

## FAQ

### Why is there no official OpenAPI spec for the NextGen Catalog API?

The U.S. National Archives publishes a Swagger description but no curated, validated OpenAPI 3 specification. Jentic generates and maintains this spec so that AI agents and developers can call the NextGen Catalog API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the NextGen Catalog API use?

The NextGen Catalog API uses an API key passed in the x-api-key header. You request a key by emailing Catalog_API@nara.gov. For write operations to /tags/, /comments/, and /transcriptions/, you must also include a registered UUID userId in the request body. Through Jentic, the x-api-key is held in your Jentic One instance.

### Can I post tags, comments, or transcriptions through this API?

Yes. POST /tags/, POST /comments/, and POST /transcriptions/ accept user contributions, but each requires a valid UUID userId in the request body that has been registered with NARA. Read endpoints do not require this userId.

### What are the rate limits for the NextGen Catalog API?

NARA does not publish explicit numeric rate limits for the NextGen Catalog API in this OpenAPI spec. Be conservative with paginated `/records/search` calls and contact Catalog_API@nara.gov if you need elevated quota for a research project.

### How do I search the National Archives Catalog through Jentic?

Run pip install jentic, search Jentic with the query 'search the National Archives Catalog', load the GET `/records/search` schema, and execute it with q and any pagination parameters. Jentic injects the x-api-key from the vault at execution time.

### Is the NextGen Catalog API free to use?

Yes. The National Archives provides the catalog API at no charge for civic and research use; you only need to email Catalog_API@nara.gov to request an API key.

### Can I limit what my agent is allowed to do with the NextGen Catalog API?

Yes. Because you self-host Jentic One, your own rules decide which NextGen Catalog operations and credentials the agent may use. Since the write calls (POST /tags/, POST /comments/, POST /transcriptions/) carry their data in the request body rather than a resource path, you scope by operation: allow only what the agent needs, such as GET `/records/search` and GET `/records/parentNaId/{parentNaId}` for reading records, and leave the tag, comment, and transcription writes out of the allowed set. Your NARA x-api-key stays in your instance and is injected only when a permitted operation runs.
