National Archives and Records Administration Users API

The Users API from National Archives and Records Administration — 3 operation(s) for users.

Operations 3

PATCH /users Update user information given a user's email #
PATCH /users/username Update a users username given their userId #
GET /users/notifications/:userId Recieve the users notifications #

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-users-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

national-archives-and-records-administration-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NextGen Catalog Users API
  version: 0.2.0
  description: This is the NextGen Catalog API application made with Express and documented with Swagger.
servers:
- url: https://catalog.archives.gov/api/v2/
tags:
- name: Users
paths:
  /users:
    patch:
      summary: Update user information given a user's email
      description: Update user information given a user. Requires an administrative account and a justification. Returns a JSON result.
      tags:
      - Users
      requestBody:
        description: Update information about a user.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/userUpdateBody'
      responses:
        '200':
          description: Successfully updated user
        '400':
          description: Bad Request
        '422':
          description: Unprocessable Entity - params are invalid
      operationId: patchUsers
      x-operation-id-source: derived
  /users/username:
    patch:
      summary: Update a users username given their userId
      description: Update user information given a user's userId. Returns a JSON result.
      tags:
      - Users
      requestBody:
        description: Update information about a user.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/usernameUpdateBody'
      responses:
        '200':
          description: Successfully updated user
        '400':
          description: Bad Request
        '422':
          description: Unprocessable Entity - params are invalid
      operationId: patchUsersUsername
      x-operation-id-source: derived
  /users/notifications/:userId:
    get:
      summary: Recieve the users notifications
      description: Recieve the users notifications, including edited transcriptions, moderated contributions, and replies to comments. Notifications are contributions, with an additional field 'notificationType' to denote type.
      tags:
      - Users
      parameters:
      - in: path
        name: userId
        schema:
          type: string
        required: true
        description: userId of the user recieving notifications.
        example: 55555555-5555-5555-5555-555555555555
      - in: query
        name: countOnly
        schema:
          type: boolean
        required: false
        description: Recieve only the count of notifications, and none of the contributions.
        example: true
      - in: query
        name: date
        schema:
          type: string
        required: false
        description: Recieve only the notifications past a certain date. Date must be in YYYY-MM-DD format.
        example: '2022-02-22'
      - in: query
        name: limit
        schema:
          type: int
        required: false
        description: Limit the amount of returned notifications.
        example: 5
      - in: query
        name: page
        schema:
          type: int
        required: false
        description: Page number for pagination of notifications. Page size is denoted by limit, defaults to 5. For example, if page = 3 notifications 10-14 will be returned.
        example: 2
      responses:
        '200':
          description: Successfully retrieved notifications
        '422':
          description: Unprocessable Entity - params are invalid
      operationId: getUsersNotifications:userId
      x-operation-id-source: derived
components:
  schemas:
    usernameUpdateBody:
      type: object
      properties:
        userId:
          type: string
          example: 1234
          maximum: 100
        userName:
          type: string
          example: jdoe1
          maximum: 32
          minimum: 2
      required:
      - userId
    userUpdateBody:
      type: object
      properties:
        actionNotes:
          type: string
          example: Changed user role to moderator
          maximum: 500
        adminUserId:
          type: string
          example: 12345678-abcd-efgh-1234-abcdefghigjk
          maximum: 36
          minimum: 36
        email:
          type: string
          example: johndoe@nara.gov
          maximum: 250
        justificationId:
          type: number
          example: 16
          maximum: 20
          minimum: 1
        role:
          type: string
          example: contributor
          maximum: 32
          minimum: 2
        status:
          type: string
          example: inactive
          maximum: 32
          minimum: 2
        userName:
          type: string
          example: jdoe1
          maximum: 32
          minimum: 2
      required:
      - adminUserId
      - email
      - justificationId