Erasmus University Rotterdam Oai Pmh API

OAI-PMH 2.0 verbs, dispatched by the `verb` query parameter on a single path.

Operations 1

GET /oai Dispatch an OAI-PMH 2.0 verb #

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/erasmus-university-rotterdam-oai-pmh-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

erasmus-university-rotterdam-oai-pmh-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RePub Metadata Harvesting Interface Oai Pmh API
  summary: The OAI-PMH 2.0 harvesting endpoint of RePub, the Erasmus University Rotterdam institutional publication repository — the one public, keyless, institution-operated API surface EUR runs on its own infrastructure.
  description: RePub (https://repub.eur.nl) is the institutional repository of Erasmus University Rotterdam, operated by Erasmus University Library.
  version: '2.0'
  contact:
    name: Erasmus University Library — RePub administration
    email: opdecoul@ubib.eur.nl
    url: https://repub.eur.nl/
  license:
    name: OAI-PMH 2.0 protocol (Open Archives Initiative)
    url: https://www.openarchives.org/OAI/openarchivesprotocol.html
servers:
- url: https://repub.eur.nl
  description: RePub production, Erasmus University Library (verified live 2026-08-30)
security: []
tags:
- name: oai pmh
  description: OAI-PMH 2.0 verbs, dispatched by the `verb` query parameter on a single path.
paths:
  /oai:
    get:
      tags:
      - oai pmh
      summary: Dispatch an OAI-PMH 2.0 verb
      description: All six OAI-PMH verbs are dispatched from this single path via the required `verb` query parameter. The response is always an `` XML envelope carrying either the verb's payload or an `` element; protocol-level failures are reported inside a 200 response, so callers must parse the body rather than branch on HTTP status. Verified live 2026-08-30 for Identify, ListMetadataFormats, ListSets, ListIdentifiers and the badVerb error path.
      operationId: oaiPmhDispatch
      parameters:
      - name: verb
        in: query
        required: true
        description: The OAI-PMH verb to execute.
        schema:
          type: string
          enum:
          - Identify
          - ListMetadataFormats
          - ListSets
          - ListIdentifiers
          - ListRecords
          - GetRecord
        example: Identify
      - name: metadataPrefix
        in: query
        required: false
        description: 'Metadata format to return. Required for ListIdentifiers, ListRecords and GetRecord. Observed live on this endpoint: oai_dc, mods, nl_didl.'
        schema:
          type: string
          enum:
          - oai_dc
          - mods
          - nl_didl
        example: oai_dc
      - name: set
        in: query
        required: false
        description: 'Restrict the selective harvest to a configured set. Observed live on this endpoint: `openaire` (OpenAIRE) and `nwo` (NWO Funded Research).'
        schema:
          type: string
          enum:
          - openaire
          - nwo
      - name: identifier
        in: query
        required: false
        description: OAI identifier of a single record. Required for GetRecord. Observed form on this endpoint is `oai:repub.eur.nl:<numeric-id>`, e.g. `oai:repub.eur.nl:17433`.
        schema:
          type: string
          pattern: ^oai:repub\.eur\.nl:[0-9]+$
        example: oai:repub.eur.nl:17433
      - name: from
        in: query
        required: false
        description: Lower bound of the datestamp range for a selective harvest. The repository reports granularity YYYY-MM-DDThh:mm:ssZ and earliestDatestamp 2023-11-24T00:00:00Z.
        schema:
          type: string
          format: date-time
      - name: until
        in: query
        required: false
        description: Upper bound of the datestamp range for a selective harvest.
        schema:
          type: string
          format: date-time
      - name: resumptionToken
        in: query
        required: false
        description: Flow-control token returned by a previous incomplete list response. Exclusive of all other arguments except `verb`.
        schema:
          type: string
      responses:
        '200':
          description: An OAI-PMH 2.0 envelope. Carries the verb's payload on success, or an `<error code="...">` element on a protocol-level failure — both under HTTP 200.
          content:
            text/xml:
              schema:
                type: string
                contentMediaType: text/xml
              examples:
                identify:
                  summary: Identify (captured live 2026-08-30)
                  externalValue: ../examples/erasmus-university-rotterdam-repub-oai-identify-response.xml
                listMetadataFormats:
                  summary: ListMetadataFormats (captured live 2026-08-30)
                  externalValue: ../examples/erasmus-university-rotterdam-repub-oai-listmetadataformats-response.xml
                listSets:
                  summary: ListSets (captured live 2026-08-30)
                  externalValue: ../examples/erasmus-university-rotterdam-repub-oai-listsets-response.xml
                badVerb:
                  summary: badVerb error, returned inside a 200 envelope (captured live 2026-08-30)
                  externalValue: ../examples/erasmus-university-rotterdam-repub-oai-error-badverb-response.xml
        '404':
          description: 'Returned for paths other than /oai on this host. Observed live: GET https://repub.eur.nl/openapi.json returns 404 text/html.'
          content:
            text/html:
              schema:
                type: string
      security: []