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