name: Stanford University — API lifecycle and versioning
description: >-
Versioning, deprecation and change posture across Stanford's institution-operated surfaces.
Stanford is unusual for a university in that its lifecycle signals are real and machine-visible
in two places — the SDR contracts use path versioning, and ExploreCourses returns its own
deprecation flag inside every response body — while being entirely absent everywhere else.
generated: '2026-08-19'
modified: '2026-08-19'
method: derived
source: >-
openapi/_original/*.yml (info.version, path prefixes, deprecated flags), a live ExploreCourses
response, and the Stanford Libraries system status page.
x-operator: institution
versioning:
- surface: SDR API
scheme: path
pattern: /v1/...
info_version: 1.0.0
method: derived
source: openapi/_original/stanford-sdr-api-openapi.yml
- surface: DOR Services API
scheme: path
pattern: /v1/...
info_version: 1.0.0
spec_version: 3.1.2
method: derived
source: openapi/_original/stanford-dor-services-api-openapi.yml
note: >-
The only OpenAPI 3.1 contract in the estate; the other four are 3.0.0. A deliberate
upgrade on the largest service (40 paths, 53 operations), not a mixed accident.
- surface: Preservation Catalog HTTP API
scheme: path
info_version: 1.0.0
method: derived
- surface: Technical Metadata API
scheme: path
info_version: 1.0.0
method: derived
- surface: SURI API
scheme: path
info_version: 1.0.0
method: derived
note: Declares a `legacy` tag alongside `identifiers` — an in-contract lifecycle signal.
- surface: ExploreCourses XML query interface
scheme: dated view parameter
pattern: '?view=xml-YYYYMMDD'
method: probed
current_documented: xml-20140630
latest_available: '20200810'
note: >-
The most interesting lifecycle artifact Stanford has. A live request for the widely-used
view=xml-20140630 returns true and 20200810
IN THE RESPONSE BODY. The service tells its own consumers they are on a deprecated
version — six years after the successor shipped — and it does so machine-readably.
evidence:
- url: https://explorecourses.stanford.edu/search?view=xml-20140630&q=CS106A&academicYear=20242025
status: 200
location: 'true and 20200810'
- surface: IIIF Presentation
scheme: standard version
method: probed
note: >-
Presentation 2.1 is served at /iiif/manifest. Stanford's own documentation describes v3 as
alpha. Version is carried by the @context IRI, per the IIIF specification.
evidence:
- url: https://purl.stanford.edu/bb157hs6068/iiif/manifest
status: 200
location: '"@context": "http://iiif.io/api/presentation/2/context.json"'
- surface: Library Hours
scheme: none
method: probed
note: No version segment, no version header, no version field in the JSON:API document.
- surface: PURL
scheme: none
method: probed
note: >-
No API version, but the publicObject document carries publishVersion="cocina-models/0.127.0"
— Stanford versions the METADATA MODEL rather than the endpoint, and states it in the payload.
evidence:
- url: https://purl.stanford.edu/bb157hs6068.xml
status: 200
location: ''
deprecation:
declared_in_contract:
method: derived
found: false
note: >-
No `deprecated: true` flag appears on any operation or parameter in any of the five
first-party OpenAPI contracts, and no Sunset or Deprecation header is documented anywhere.
The only deprecation signal Stanford publishes is the ExploreCourses response body above,
which is outside any contract.
policy_published: false
note: >-
No API deprecation policy, no versioning policy, and no change-notification channel for
developers was found on either developer hub. The MaIS developer onboarding checklist does
not describe how a Registry API change is communicated to consumers.
change_communication:
- type: Status
url: https://library-status.stanford.edu/
status: 200
method: probed
scope: Stanford Libraries systems
- type: Status
url: https://stanford.service-now.com/services?id=services_status
status: 200
method: probed
scope: University IT services
- type: ReleaseNotes
surface: AI Playground and AI API Gateway
method: searched
source: https://uit.stanford.edu/service/ai-api-gateway
note: Release notes are published for the AI Gateway — the only Stanford API surface with them.
- type: SourceHistory
url: https://github.com/sul-dlss
status: 200
method: probed
note: >-
For the five SDR contracts, git history on the sul-dlss org IS the changelog. Public, but
not a developer-facing change feed.