openapi: 3.1.0 info: title: T2R2 Research Repository OAI-PMH version: '2.0' summary: OAI-PMH 2.0 metadata harvesting interface for the Science Tokyo / Tokyo Tech Research Repository (T2R2). description: >- OAI-PMH 2.0 harvesting endpoint operated by the Institute of Science Tokyo (formerly Tokyo Institute of Technology) at t2r2.star.titech.ac.jp, on the institution's own registrable domain. The repository identifies itself as "T2R2 -Tokyo Tech Research Repository-" and is administered by the university library (t2r2@libra.titech.ac.jp). It runs OCLC's OAICat framework 1.5.46 — OAICat is open-source software the institution deploys itself, NOT a hosted vendor platform, so the operator of this endpoint is the institution. This document was DERIVED by API Evangelist from live probes of the endpoint against the OAI-PMH 2.0 protocol specification. The institution publishes no OpenAPI of its own. Every path, parameter, metadata prefix and error code below was observed in a real response on 2026-08-30 — see examples/ for the captured payloads. SUNSET NOTICE: the operating institution has published a discontinuation schedule for this service (https://t2r2.star.titech.ac.jp/index_en.html, dated 2026-07-22). The T2R2 search function was withdrawn on 2026-08-20; T2R2 registration and internal use end on 2026-10-01; full-text deposits move to the Science Tokyo Repository on JAIRO Cloud (https://isct.repo.nii.ac.jp/oai), which is a TENANT surface on the NII/JPCOAR platform, not an institution-operated one. Item pages remain reachable "for the time being". Treat this contract as describing a service in wind-down. See lifecycle/. contact: name: Library Infrastructure Group, Library Information Management Division, Institute of Science Tokyo email: t2r2@libra.titech.ac.jp url: https://www.isct.ac.jp/en/001/about/organizations/library x-operator: institution x-operator-evidence: >- servers[] host t2r2.star.titech.ac.jp is under titech.ac.jp, a registrable domain of the institution; the OAI-PMH Identify response names adminEmail t2r2@libra.titech.ac.jp, also an institution domain. No vendor host, vendor contact or vendor product name appears in the endpoint's self-description beyond the OAICat toolkit block, which names the software, not the operator. x-provenance: method: derived generated: '2026-08-30' source: https://t2r2.star.titech.ac.jp/oaipmh/OAIHandler?verb=Identify protocol: http://www.openarchives.org/OAI/2.0/ note: >- Derived from live protocol probes plus the OAI-PMH 2.0 specification. Not published by the institution. Do not credit this document to the Institute of Science Tokyo as something they authored. license: name: Not stated by the operator identifier: NOASSERTION servers: - url: https://t2r2.star.titech.ac.jp/oaipmh description: >- Production harvesting host. The Identify response advertises baseURL over http://; https is served and was used for every probe. tags: - name: OAI-PMH description: OAI-PMH 2.0 protocol verbs. All six verbs are dispatched from a single path via the `verb` query parameter. paths: /OAIHandler: get: operationId: oaipmh summary: OAI-PMH 2.0 request dispatcher description: >- Single OAI-PMH entry point. The `verb` parameter selects the operation. The endpoint returns HTTP 200 for every well-formed HTTP request, including protocol errors — an OAI-PMH error is carried in the response body as , never as a 4xx. No authentication, no signup and no rate-limit headers were observed. tags: [OAI-PMH] security: [] parameters: - name: verb in: query required: true description: OAI-PMH protocol verb. schema: type: string enum: [Identify, ListMetadataFormats, ListSets, ListIdentifiers, ListRecords, GetRecord] - name: metadataPrefix in: query required: false description: >- Metadata format. Required for ListIdentifiers, ListRecords and GetRecord; omitting it returns badArgument. Verified supported values: oai_dc, junii2. schema: type: string enum: [oai_dc, junii2] - name: identifier in: query required: false description: 'Record identifier, required for GetRecord. Observed form: oai:t2r2.star.titech.ac.jp:00215682' schema: type: string pattern: '^oai:t2r2\.star\.titech\.ac\.jp:[0-9]+$' - name: from in: query required: false description: Lower datestamp bound. Granularity YYYY-MM-DDThh:mm:ssZ, per Identify. schema: type: string format: date-time - name: until in: query required: false description: Upper datestamp bound. Granularity YYYY-MM-DDThh:mm:ssZ, per Identify. schema: type: string format: date-time - name: set in: query required: false description: >- Set spec. This repository does NOT support sets — ListSets returns error code noSetHierarchy, verified 2026-08-30. schema: type: string - name: resumptionToken in: query required: false description: Flow-control token returned with a truncated list response. schema: type: string responses: '200': description: >- An OAI-PMH 2.0 response envelope. Carries either the verb's result element or an element; both are returned with HTTP 200. content: text/xml: schema: $ref: '#/components/schemas/OAIPMHResponse' components: schemas: OAIPMHResponse: type: object title: OAI-PMH response envelope description: >- XML document rooted at {http://www.openarchives.org/OAI/2.0/}OAI-PMH. Modelled here as an object because OpenAPI has no native XSD import; the authoritative schema is http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd. xml: name: OAI-PMH namespace: http://www.openarchives.org/OAI/2.0/ properties: responseDate: type: string format: date-time request: type: string format: uri error: $ref: '#/components/schemas/OAIPMHError' Identify: $ref: '#/components/schemas/Identify' Identify: type: object description: Values below are the live values observed on 2026-08-30, not placeholders. properties: repositoryName: type: string examples: ['T2R2 -Tokyo Tech Research Repository-'] baseURL: type: string format: uri examples: ['http://t2r2.star.titech.ac.jp/oaipmh/OAIHandler'] protocolVersion: type: string examples: ['2.0'] adminEmail: type: string examples: ['mailto:t2r2@libra.titech.ac.jp'] earliestDatestamp: type: string format: date-time examples: ['2008-05-01T00:00:00Z'] deletedRecord: type: string examples: ['no'] granularity: type: string examples: ['YYYY-MM-DDThh:mm:ssZ'] compression: type: array items: type: string enum: [gzip, deflate] OAIPMHError: type: object properties: code: type: string enum: [badArgument, badResumptionToken, badVerb, cannotDisseminateFormat, idDoesNotExist, noRecordsMatch, noMetadataFormats, noSetHierarchy] message: type: string