openapi: 3.2.0 info: title: SNU S-Space Interface Open Search API version: '1.1' summary: OpenSearch 1.1 search interface over the SNU Open Repository and Archive. description: 'S-Space serves an OpenSearch 1.1 description document at /open-search/description.xml and answers queries at /open-search/ in Atom, RSS 2.0 or HTML. This is a genuine machine-readable search surface on Seoul National University''s own host, and it is the only keyword-search API the institution operates. It carries one significant caveat that must not be papered over. Unlike the OAI-PMH endpoints, /open-search/ sits BEHIND the JavaScript interstitial challenge that fronts s-space.snu.ac.kr. A client without a browser receives HTTP 200 and a ~1 KB HTML shell containing a `js-challenge` token, not search results — a textbook soft-200. Real results require replaying that token as a `js-challenge` cookie. Every example in this contract was captured that way. Treat this surface as GATED, not open: the status code says 200, the payload says no.' x-generated: '2026-08-19' x-method: probed x-operator: institution x-source: Live probes of https://s-space.snu.ac.kr/open-search/description.xml and /open-search/ (atom, rss) on 2026-08-19, with the js-challenge cookie replayed, plus the OpenSearch 1.1 specification. SNU publishes no OpenAPI for this surface. contact: name: S-Space Administrator, Seoul National University email: s-space@snu.ac.kr url: https://s-space.snu.ac.kr/ license: name: Not stated identifier: NOASSERTION servers: - url: https://s-space.snu.ac.kr description: S-Space, Seoul National University. security: - jsChallengeCookie: [] tags: - name: OpenSearch description: OpenSearch 1.1 description and query endpoints. paths: /open-search/description.xml: get: tags: - OpenSearch operationId: getOpenSearchDescription summary: Retrieve the OpenSearch 1.1 description document description: Returns the OpenSearchDescription document advertising the query templates. Requires the js-challenge cookie; without it the response is a 200 HTML shell. responses: '200': description: OpenSearch description document. content: application/opensearchdescription+xml: schema: type: object examples: description: summary: Captured live 2026-08-19 with the js-challenge cookie replayed externalValue: ../examples/snu-s-space-opensearch-description-example.xml text/html: schema: type: string examples: challenge: summary: What a client without JavaScript actually receives — HTTP 200 with a js-challenge shell, no OpenSearch document. value: ...