Cornell University Library Catalog Search API

JSON search over Cornell University Library's catalog. The catalog is the library's own Blacklight deployment; appending .json to any catalog route returns a Solr-backed JSON envelope, and an OpenSearch description document is published at /catalog/opensearch.xml. Cornell publishes no API reference for it, so the contract in this repo is derived from live probes, not from a Cornell-authored spec. Item-level JSON is not offered (406).

Operations 3

GET /catalog.json Search the library catalog #
GET /catalog/opensearch.xml OpenSearch description document #
GET /catalog/opensearch.json Search suggestions #

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/library-catalog"
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

cornell-library-catalog-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cornell University Search Library Catalog API
  version: '1.0'
  description: 'Machine-readable search over the Cornell University Library catalog. The catalog runs on Blacklight, the open-source Solr discovery layer Cornell University Library develops and self-hosts (github.com/cul), and every catalog route answers in JSON when `.json` is appended, alongside RSS, Atom and an OpenSearch description. There is no published API reference and no versioning commitment: this document was derived from live probes of the running service, not from a Cornell-published contract. Item-level JSON is not offered — /catalog/{id}.json returns 406.'
  termsOfService: https://www.library.cornell.edu/
  contact:
    name: Cornell University Library
    url: https://www.library.cornell.edu/
  x-operator: institution
  x-operator-evidence: catalog.library.cornell.edu is under Cornell's own registrable domain and CNAMEs to blacklight-cornell-prod-1202100003.us-east-1.elb.amazonaws.com — an AWS load balancer in Cornell University Library's own account, not a vendor platform tenancy. The application is Cornell University Library's own Blacklight deployment (github.com/cul, 200 on 2026-08-19). OpenSearch description at /catalog/opensearch.xml self-identifies as "Cornell University Library Catalog".
  x-provenance:
    generated: '2026-08-19'
    method: derived
    source: 'Live probes 2026-08-19: https://catalog.library.cornell.edu/catalog.json?q=cornell&search_field=all_fields 200 application/json (287,551 bytes); .../catalog.json?q=birds&search_field=all_fields&page=2&per_page=5 200; https://catalog.library.cornell.edu/catalog/opensearch.xml 200 application/xml; https://catalog.library.cornell.edu/catalog/15658426.json 406 (item JSON not served). The HTML root returns HTTP 202 with a zero-length body to non-browser clients (bot challenge) while the JSON routes answer normally.'
servers:
- url: https://catalog.library.cornell.edu
  description: Cornell University Library catalog (production)
tags:
- name: library-catalog
  description: Search the Cornell University Library catalog.
paths:
  /catalog.json:
    get:
      tags:
      - library-catalog
      summary: Search the library catalog
      description: Blacklight search returning a JSON envelope of `response.document[]` plus facets and pagination. Verified live 2026-08-19.
      operationId: searchCatalog
      parameters:
      - name: q
        in: query
        description: Search terms.
        required: false
        schema:
          type: string
      - name: search_field
        in: query
        description: Blacklight search field, e.g. all_fields, title, author, subject.
        required: false
        schema:
          type: string
          default: all_fields
      - name: page
        in: query
        description: 1-indexed result page.
        required: false
        schema:
          type: integer
          minimum: 1
      - name: per_page
        in: query
        description: Results per page.
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        '200':
          description: A JSON search response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: object
                    properties:
                      document:
                        type: array
                        items:
                          type: object
                          description: A catalog record. Blacklight returns dynamic Solr field names (title_sms_compat_display, id, record_dates_display, ...); the field set is not contractually declared by Cornell and is not enumerated here.
  /catalog/opensearch.xml:
    get:
      tags:
      - library-catalog
      summary: OpenSearch description document
      description: OpenSearch 1.1 description advertising the HTML, RSS and suggestion endpoints.
      operationId: getOpenSearchDescription
      responses:
        '200':
          description: OpenSearch description document.
          content:
            application/xml:
              schema:
                type: string
  /catalog/opensearch.json:
    get:
      tags:
      - library-catalog
      summary: Search suggestions
      description: OpenSearch suggestions endpoint advertised by the OpenSearch description document.
      operationId: getSearchSuggestions
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Suggestion list.
          content:
            application/json:
              schema:
                type: array
                items: {}