Brown University Collections API

Repository collections and their membership.

Operations 2

GET /api/collections/ List top-level collections #
GET /api/collections/{collection_id}/ Get one collection, its sub-collections and its items #

Documentation

Specifications

Schemas & Data

Other Resources

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/brown-collections-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 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

brown-collections-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Brown Digital Repository (BDR) Collections API
  version: '2026-08-30'
  summary: Public, keyless read API over the Brown University Library's digital repository.
  description: 'The Brown Digital Repository (BDR) is the Brown University Library''s platform for gathering,

    indexing, storing, preserving and making available digital assets produced by scholarly,

    instructional, research and administrative activity at Brown.'
  contact:
    name: Brown University Library
    url: https://library.brown.edu
  termsOfService: https://policy.brown.edu/policy/privacy
  license:
    name: Rights vary per repository object; see each object's MODS metadata
    url: https://repository.library.brown.edu/studio/
  x-operator: institution
  x-operator-basis: Host is under brown.edu, Brown's own registrable domain. The repository application is authored and maintained by the Brown University Library (public source in https://github.com/Brown-University-Library — bdr_indexer, bdrxml, bdr_uploader_hub_project, bdr-api-tools), the API documentation is written by Brown Library staff in Brown's own GitHub wiki, and DataCite lists the repository as Brown's registered client BROWN.BDR. No vendor platform identity appears in servers[], info.title or info.contact.
  x-provenance:
    generated: '2026-08-30'
    method: derived
    source:
    - https://github.com/Brown-University-Library/bdr_api_documentation/wiki
    - https://repository.library.brown.edu/api/
    - https://repository.library.brown.edu/api/search/?q=primary_title:irish&rows=2&fl=pid,primary_title,abstract
    - https://repository.library.brown.edu/api/items/bdr:80246/
    - https://repository.library.brown.edu/api/collections/
    - https://api.datacite.org/clients/brown.bdr
    note: Derived from Brown's own prose documentation plus live probing on 2026-08-30. Not published by Brown as a specification. Do not present this document as a Brown-authored contract.
servers:
- url: https://repository.library.brown.edu
  description: Brown Digital Repository production
security: []
tags:
- name: Collections
  description: Repository collections and their membership.
paths:
  /api/collections/:
    get:
      tags:
      - Collections
      operationId: listTopLevelCollections
      summary: List top-level collections
      description: Returns the repository's TOP-LEVEL collections only, which Brown notes explicitly — this is not the full collection tree. Descend via each collection's own endpoint.
      responses:
        '200':
          description: Top-level collection list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionList'
        '500':
          description: Internal server error, per Brown's documented global exception behaviour.
  /api/collections/{collection_id}/:
    get:
      tags:
      - Collections
      operationId: getCollection
      summary: Get one collection, its sub-collections and its items
      description: Accepts either the numeric database id (`403`) or the PID (`bdr:k499pm6d`); both were confirmed live. Responses that carry items return URLs to both the web view and the item API view of each member.
      parameters:
      - name: collection_id
        in: path
        required: true
        description: Numeric collection id or `bdr:`-prefixed PID.
        schema:
          type: string
        examples:
          numeric:
            value: '403'
          pid:
            value: bdr:k499pm6d
      - name: q
        in: query
        required: false
        description: Sub-query restricting the returned items within this collection.
        schema:
          type: string
        example: greek
      responses:
        '200':
          description: Collection record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection'
        '404':
          description: Not Found. OBSERVED for an unknown collection id, as a nine-byte `text/html` body.
components:
  schemas:
    Collection:
      type: object
      description: A single collection, its sub-collections and its member items.
      additionalProperties: true
      properties:
        name:
          type: string
        description:
          type: string
        items:
          type: object
          additionalProperties: true
        children:
          type: array
          items:
            $ref: '#/components/schemas/CollectionRef'
    CollectionList:
      type: object
      required:
      - collections
      properties:
        collections:
          type: array
          items:
            $ref: '#/components/schemas/CollectionRef'
    CollectionRef:
      type: object
      properties:
        pid:
          type: string
        id:
          type: string
        db_id:
          type: integer
        name:
          type: string
        description:
          type: string
        tags:
          type: array
          items:
            type: string
        json_uri:
          type: string
          format: uri
          description: Collection API URL for this collection.
        uri:
          type: string
          format: uri
          description: Human web view of this collection.
        thumbnail_url:
          type: string
          format: uri
x-access:
  authentication: none
  description: Every documented BDR API endpoint is anonymous and keyless. There is no API key, no OAuth flow and no registration step. The boundary is not authentication but VISIBILITY — the index exposes `_display_public_bsi`, `_display_brown_bsi` and `_display_private_bsi`, and the anonymous API sees only public objects. Brown-affiliated access to the wider set goes through the Shibboleth login the `links.login` key on every search response points at.
x-throttling:
  observed_headers: none
  description: 'No rate-limit headers were returned on any probe. Brown documents in its own API wiki that Cloudflare bot protection was added in Spring 2025 and may affect API users requesting a large volume of items at a high rate, and advises Brown community members to use the VPN to reduce the impact. The repository''s robots.txt sets `Crawl-delay: 30`. The 500-row response cap is the only hard, observable limit.'