National Archives and Records Administration (NARA) Announcements API

For important announcements

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/national-archives-and-records-administration-nara--announcements-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

national-archives-and-records-administration-nara--announcements-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: NextGen Catalog Accounts Announcements API
  version: 0.2.0
  description: "\nThis is the NextGen Catalog API application made with Express and documented with Swagger.\n\nThis API requires the use of an API key in order to access. Once you have obtained an API key, you can pass the API key into a REST API call in the x-api-key header of the request. For example, the request might look like\n\n    curl --location --request GET 'https://catalog.archives.gov/api/v2/records/search?q=constitution'\n    --header 'Content-Type: application/json'\n    --header 'x-api-key: API_KEY'\n\nwhere API_KEY is the key string of your API key.\n\nFor write operations, in addition to the API key, a user ID in the format of a Universally Unique Identifier (UUID) is required in the body of the request. For example, a request to POST a tag might look like:\n\n    curl --location --request POST 'https://catalog.archives.gov/api/v2/tags'\n    --header 'Content-Type: application/json'\n    --data-raw '{\n    \"tag\": \"example tag\",\n    \"targetNaId\": 1667751,\n    \"userId\": \"USER_UUID\"\n    }'\nwhere USER_UUID is the UUID of the user.\n\nPlease contact O&M at Catalog_API@nara.gov for an API Key."
servers:
- url: https://catalog.archives.gov/api/v2/
tags:
- name: Announcements
  description: For important announcements
paths:
  /announcements/latest:
    get:
      summary: Get a list of active announcements.
      description: Retrieve a paginated list of announcements.
      tags:
      - Announcements
      responses:
        '200':
          description: A list of announcements.
          content:
            application/json:
              schema:
                type: object
                properties:
                  announcements:
                    type: array
                    items:
                      $ref: '#/components/schemas/Announcement'
  /announcements:
    get:
      summary: Get a list of announcements.
      description: Retrieve a paginated list of announcements.
      tags:
      - Announcements
      parameters:
      - in: query
        name: page
        schema:
          type: integer
          default: 1
        description: The page number of announcements to retrieve.
      - in: query
        name: limit
        schema:
          type: integer
          default: 10
        description: The number of announcements to display per page.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - ACTIVE
          - DRAFT
          - INACTIVE
        description: The status of the announcements to filter by.
      - in: query
        name: sortCol
        schema:
          type: string
          enum:
          - status
          - created_at
          - updated_at
          - user_name
        description: The column to sort the announcements by.
      - in: query
        name: sortOrder
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: The order of sorting (ascending or descending).
      responses:
        '200':
          description: A list of announcements.
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    type: object
                    properties:
                      totalCount:
                        type: integer
                        description: The total number of announcements.
                      activeCount:
                        type: integer
                        description: The number of active announcements.
                      draftCount:
                        type: integer
                        description: The number of draft announcements.
                      inactiveCount:
                        type: integer
                        description: The number of inactive announcements.
                  announcements:
                    type: array
                    items:
                      $ref: '#/components/schemas/Announcement'
    post:
      summary: Create a new announcement.
      description: Allows a moderator to create a new announcement. The announcement is initially created with a status of 'DRAFT'.
      tags:
      - Announcements
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - announcement_text
              properties:
                announcement_text:
                  type: string
                  description: The content of the announcement.
                notes:
                  type: string
                  description: Optional notes about the announcement.
                user_id:
                  type: integer
                  description: The ID of the user who is creating the announcement.
      responses:
        '201':
          description: Announcement created successfully. The response includes the created announcement details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  announcement_id:
                    type: integer
                    description: The unique identifier of the announcement.
                  created_at:
                    type: string
                    format: date-time
                    description: The timestamp when the announcement was created.
                  announcement_text:
                    type: string
                    description: The content of the announcement.
                  notes:
                    type: string
                    description: Optional notes about the announcement.
                  user_id:
                    type: string
                    description: The ID of the user who created the announcement.
                  status:
                    type: string
                    description: The status of the announcement.
        '400':
          description: Validation error. This can occur if the request body does not match the expected format.
        '500':
          description: Internal server error.
      security:
      - ApiKeyAuth: []
  /announcements/{announcement_id}:
    put:
      summary: Update an existing announcement.
      description: Allows a moderator to update an existing announcement.
      tags:
      - Announcements
      parameters:
      - in: path
        name: announcement_id
        required: true
        schema:
          type: integer
        description: The unique identifier of the announcement to update.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                announcement_text:
                  type: string
                  description: Updated content of the announcement.
                status:
                  type: string
                  enum:
                  - DRAFT
                  - ACTIVE
                  - INACTIVE
                  description: Updated status of the announcement.
                user_id:
                  type: string
                  format: uuid
                  description: The ID of the user who is updating the announcement.
                notes:
                  type: string
                  description: Optional notes about the announcement.
      responses:
        '200':
          description: Announcement updated successfully. Returns the updated announcement object.
          content:
            application/json:
              schema:
                type: object
                properties:
                  announcement_id:
                    type: integer
                    description: The unique identifier of the announcement.
                  announcement_text:
                    type: string
                    description: Content of the announcement.
                  status:
                    type: string
                    description: Current status of the announcement.
                  user_id:
                    type: string
                    format: uuid
                    description: The ID of the user who updated the announcement.
                  user_name:
                    type: string
                    description: The name of the user who updated the announcement.
                  notes:
                    type: string
                    description: Optional notes about the announcement.
                  created_at:
                    type: string
                    format: date-time
                    description: Timestamp when the announcement was created.
                  updated_at:
                    type: string
                    format: date-time
                    description: Timestamp when the announcement was last updated.
        '400':
          description: Validation error.
        '404':
          description: Announcement not found.
        '500':
          description: Internal server error.
      security:
      - ApiKeyAuth: []