Digital Public Library of America Utilities API

Utility endpoints for health checks and random item retrieval

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/dpla-utilities-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

dpla-utilities-api-openapi.yml Raw ↑
openapi: 3.0.3
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:
    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
    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.
    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.
    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
    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
    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'
    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.
    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).
    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.
    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.
    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).
    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.
    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.
  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).