National Archives and Records Administration Online Availability API

Information about record online availability

OpenAPI Specification

national-archives-and-records-administration-online-availability-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: NextGen Catalog Accounts Online Availability 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: Online Availability
  description: Information about record online availability
paths:
  /online-availability:
    get:
      summary: Get all online availability information.
      tags:
      - Online Availability
      parameters:
      - $ref: '#/components/parameters/paramAvailability'
      - $ref: '#/components/parameters/paramAvailabilityStatus'
      - $ref: '#/components/parameters/paramNaId'
      - $ref: '#/components/parameters/paramLimit'
      - $ref: '#/components/parameters/paramPage'
      responses:
        '200':
          description: A body of response data containing full record objects if any were found.
        '400':
          description: Bad Request. Invalid search terms, revise terms.
        '422':
          description: Unprocessable Entity. Query must be a non-empty string.
  /online-availability/naId/{naId}:
    get:
      summary: Get all online availability information for a record with the given naId.
      tags:
      - Online Availability
      parameters:
      - $ref: '#/components/parameters/paramPathNaId'
      responses:
        '200':
          description: A body of response data containing full record objects if any were found.
        '400':
          description: Bad Request. Invalid search terms, revise terms.
        '422':
          description: Unprocessable Entity. Query must be a non-empty string.
  /online-availability/update:
    put:
      summary: Update or insert online availability information given a record's naId.
      tags:
      - Online Availability
      requestBody:
        description: Add online availability information about a record.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/onlineAvailabilityBody'
      responses:
        '200':
          description: A body of response data containing full record objects if any were found.
        '400':
          description: Bad Request. Invalid search terms, revise terms.
        '422':
          description: Unprocessable Entity. Query must be a non-empty string.
  /online-availability/delete:
    delete:
      summary: Completely remove online availability information for a given record naId.
      tags:
      - Online Availability
      parameters:
      - $ref: '#/components/parameters/paramNaId'
      responses:
        '200':
          description: A message confirming the online availability status for the specified record was successfully deleted
        '500':
          description: Internal server error.
components:
  parameters:
    paramLimit:
      in: query
      name: limit
      description: Maximum number of results returned for each page of paginated data.
      required: false
      schema:
        default: 20
        maximum: 1000
        type: integer
      example: 75
    paramPage:
      in: query
      name: page
      description: Page number of the paginated result set in which to return.
      required: false
      schema:
        default: 1
        maximum: 10000
        type: integer
      example: 20
    paramPathNaId:
      in: path
      name: naId
      description: Unique, NARA-specific identifier given to each record.
      required: false
      schema:
        maximum: 30
        type: integer
      example: 146919092
    paramAvailabilityStatus:
      in: query
      name: availabilityStatus
      description: An array of online availability status values
      required: false
      schema:
        enum:
        - active
        - inactive
        type: string
      example: active, inactive
    paramNaId:
      in: query
      name: naId
      description: An array of NARA-specific identifiers, each of which is unique to a single record.
      required: false
      schema:
        maximum: 10000
        type: string
      example: 146919092, 146919093
    paramAvailability:
      in: query
      name: availability
      description: An array of online availability values
      required: false
      schema:
        enum:
        - fullyDigitized
        - unrestrictedOnly
        type: string
      example: fullyDigitized, unrestrictedOnly
  schemas:
    onlineAvailabilityBody:
      type: object
      properties:
        naId:
          type: string
          example: 123456
          maximum: 30
        status:
          type: string
          example: active
        availability:
          type: string
          example: fullyDigitized
          accepted:
          - fullyDigitized
          - unrestrictedOnly
      required:
      - naId