Digital Public Library of America Utilities API
Utility endpoints for health checks and random item retrieval
Utility endpoints for health checks and random item retrieval
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/dpla-utilities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Digital Public Library of America (DPLA) Authentication Utilities API
description: The Digital Public Library of America (DPLA) provides a free REST API that gives access to metadata for 50 million+ cultural heritage items aggregated from 4,000+ US libraries, archives, and museums. The API supports full-text search, field-specific queries, geographic and date range filtering, faceted browsing, and JSONP callbacks. All results are returned as JSON-LD. API keys are issued free of charge via a self-service email-based registration endpoint.
version: '2'
contact:
name: DPLA Developer Portal
url: https://pro.dp.la/developers
license:
name: MIT
url: https://opensource.org/licenses/MIT
termsOfService: https://dp.la/info/terms-conditions/
servers:
- url: https://api.dp.la/v2
description: DPLA API v2 production server
security:
- ApiKeyQuery: []
- ApiKeyHeader: []
tags:
- name: Utilities
description: Utility endpoints for health checks and random item retrieval
paths:
/random:
get:
operationId: randomItem
summary: Retrieve a random item
description: Returns a single randomly selected cultural heritage item record. Supports an optional filter parameter to constrain the pool of eligible records.
tags:
- Utilities
parameters:
- name: filter
in: query
description: Filter expression to constrain the random selection pool. Format is field:value.
schema:
type: string
example: sourceResource.type:image
- name: api_key
in: query
description: Your DPLA API key. Alternatively, pass as Authorization header.
schema:
type: string
responses:
'200':
description: A randomly selected item record
content:
application/json:
schema:
$ref: '#/components/schemas/ItemSearchResponse'
'403':
description: Forbidden — invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/health-check:
get:
operationId: healthCheck
summary: API health check
description: Returns HTTP 200 OK if the API is operational.
tags:
- Utilities
security: []
responses:
'200':
description: API is healthy and operational
components:
schemas:
FacetResult:
type: object
description: Aggregated facet counts for a specific field.
properties:
_type:
type: string
description: Type of facet (e.g., "terms", "date_histogram").
example: terms
terms:
type: array
items:
$ref: '#/components/schemas/FacetTerm'
description: List of term/count pairs for a terms facet.
DateRange:
type: object
description: A date or date range associated with the item.
properties:
displayDate:
type: string
description: Human-readable date string as supplied by the institution.
example: circa 1865
begin:
type: string
description: Start date (ISO 8601 or year string).
example: '1865'
end:
type: string
description: End date (ISO 8601 or year string).
example: '1865'
after:
type: string
description: Date after which results are returned (for filtering).
before:
type: string
description: Date before which results are returned (for filtering).
Agent:
type: object
description: An organization or institution acting as provider or data provider.
properties:
'@id':
type: string
format: uri
description: URI identifying the organization.
name:
type: string
description: Name of the organization.
example: Smithsonian Institution
exactMatch:
type: array
items:
type: string
format: uri
description: URIs that exactly identify this organization.
ErrorResponse:
type: object
description: Standard error response body.
properties:
error:
type: string
description: Machine-readable error code.
example: invalid_api_key
message:
type: string
description: Human-readable error description.
example: Invalid or inactive API key.
documentation:
type: string
format: uri
description: Link to error documentation.
example: https://pro.dp.la/developers/responses#errors
required:
- error
- message
SubjectTerm:
type: object
description: A subject heading term.
properties:
'@id':
type: string
format: uri
'@type':
type: string
name:
type: string
description: Subject heading text.
example: Presidents -- United States
scheme:
type: string
description: Subject vocabulary scheme (e.g., LCSH).
DPLAItem:
type: object
description: A single DPLA cultural heritage item metadata record (DPLA MAP v4).
properties:
'@context':
type: string
format: uri
description: JSON-LD context for this record.
'@id':
type: string
format: uri
description: Canonical URI for this item in the DPLA.
example: http://dp.la/api/items/1df43d2b1b7b21843abb5f44982f1fef
id:
type: string
description: DPLA item identifier (32-character hash).
example: 1df43d2b1b7b21843abb5f44982f1fef
sourceResource:
$ref: '#/components/schemas/SourceResource'
dataProvider:
$ref: '#/components/schemas/Agent'
provider:
$ref: '#/components/schemas/Agent'
isShownAt:
type: string
format: uri
description: URL at the contributing institution where the item is shown.
object:
type: string
format: uri
description: URL of the thumbnail or representative image.
hasView:
type: array
items:
$ref: '#/components/schemas/WebResource'
iiifManifest:
type: string
format: uri
description: IIIF manifest URL if available.
rights:
type: array
items:
type: string
format: uri
description: Rights statement URIs (e.g., RightsStatements.org or Creative Commons).
rightsCategory:
type: string
description: High-level rights category derived from the rights URI.
intermediateProvider:
type: string
description: Intermediate service provider name, if applicable.
isPartOf:
type: object
properties:
'@id':
type: string
format: uri
name:
type: string
description: Collection or set this item belongs to.
tags:
type: array
items:
type: string
description: User-contributed tags associated with this item.
admin:
type: object
properties:
contributingInstitution:
type: string
description: Name of the contributing institution.
score:
type: number
format: float
description: Relevance score assigned by the search engine.
FacetTerm:
type: object
description: A single facet term with its document count.
properties:
term:
type: string
description: The facet value.
example: image
count:
type: integer
description: Number of documents with this value.
example: 24831
SourceResource:
type: object
description: The intellectual content and descriptive metadata of the original cultural heritage object, following DPLA Metadata Application Profile.
properties:
'@id':
type: string
format: uri
title:
type: array
items:
type: string
description: Title(s) of the item.
example:
- Portrait of Abraham Lincoln
description:
type: array
items:
type: string
description: Description(s) of the item.
creator:
type: array
items:
type: string
description: Creator(s) or author(s).
contributor:
type: array
items:
type: string
description: Contributor(s).
publisher:
type: array
items:
type: string
description: Publisher(s).
subject:
type: array
items:
$ref: '#/components/schemas/SubjectTerm'
description: Subject headings.
type:
type: array
items:
type: string
description: 'Object type(s). Common values: image, text, sound, moving image, interactive resource, physical object, collection, dataset.'
format:
type: array
items:
type: string
description: Physical or digital format.
language:
type: array
items:
$ref: '#/components/schemas/Language'
description: Language(s) of the item.
date:
$ref: '#/components/schemas/DateRange'
temporal:
$ref: '#/components/schemas/DateRange'
spatial:
type: array
items:
$ref: '#/components/schemas/SpatialLocation'
description: Geographic location(s) associated with the item.
identifier:
type: array
items:
type: string
description: Local identifier(s) assigned by the contributing institution.
rights:
type: array
items:
type: string
description: Rights statement text from the contributing institution.
relation:
type: array
items:
type: string
description: Related resources.
extent:
type: array
items:
type: string
description: Extent or size of the item.
collection:
$ref: '#/components/schemas/Collection'
subtitle:
type: array
items:
type: string
description: Subtitle(s) of the item.
specType:
type: array
items:
type: string
description: Specific type refinements.
WebResource:
type: object
description: A web-accessible representation or view of the item.
properties:
'@id':
type: string
format: uri
description: URL of this web resource.
format:
type: string
description: MIME type or format of this resource.
rights:
type: string
description: Rights statement for this resource.
edmRights:
type: string
format: uri
description: EDM rights URI for this resource.
Collection:
type: object
description: The collection this item belongs to at the contributing institution.
properties:
'@id':
type: string
format: uri
id:
type: string
description: Collection identifier.
title:
type: string
description: Collection title.
description:
type: string
description: Collection description.
Language:
type: object
description: Language of the item.
properties:
name:
type: string
description: Language name.
example: English
iso639_3:
type: string
description: ISO 639-3 three-letter language code.
example: eng
SpatialLocation:
type: object
description: A geographic location associated with the item.
properties:
name:
type: string
description: Place name.
city:
type: string
description: City name.
county:
type: string
description: County name.
region:
type: string
description: Region name.
state:
type: string
description: US state name.
country:
type: string
description: Country name.
coordinates:
type: string
description: Geographic coordinates in "lat,lon" format.
example: 38.9072,-77.0369
iso3166-2:
type: string
description: ISO 3166-2 subdivision code.
ItemSearchResponse:
type: object
description: JSON-LD response envelope for a list of DPLA item records.
properties:
'@context':
type: string
format: uri
description: JSON-LD context URI for DPLA Metadata Application Profile.
example: http://dp.la/api/items/context
'@id':
type: string
format: uri
description: URI of this result set.
count:
type: integer
description: Total number of records matching the query.
example: 128450
start:
type: integer
description: Index of the first result in this page (0-indexed).
example: 0
limit:
type: integer
description: Number of results in this page.
example: 10
docs:
type: array
description: Array of DPLA item metadata records.
items:
$ref: '#/components/schemas/DPLAItem'
facets:
type: object
description: Facet aggregation results keyed by field name. Only present when the facets query parameter is used.
additionalProperties:
$ref: '#/components/schemas/FacetResult'
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: api_key
description: DPLA API key passed as a query parameter. Obtain a free key by sending a POST to /api_key/{email}.
ApiKeyHeader:
type: apiKey
in: header
name: Authorization
description: DPLA API key passed as an Authorization header value (not Bearer scheme — just the raw 32-character key).