IIT Kanpur PKK Library OAI-PMH API

OAI-PMH 2.0 metadata-harvesting endpoint for the P.K. Kelkar Library catalog, operated on the institution's own Koha installation. Verified live on 2026-09-01: Identify returns repositoryName "PKK Library", adminEmail libcirc@iitk.ac.in, granularity YYYY-MM-DDThh:mm:ssZ, deletedRecord persistent and earliestDatestamp 2016-09-28T08:43:15Z; ListMetadataFormats returns oai_dc, marc21 and marcxml; ListIdentifiers returns live records. ListSets returns noSetHierarchy — no sets are defined. Requires no authentication. OAI-PMH is a named standard in the Kin Score education regime and this is IIT Kanpur's one domain-standard conformance.

Operations 1

GET /oai.pl OAI-PMH 2.0 request #

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/iit-kanpur-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

iit-kanpur-oai-pmh-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IIT Kanpur PKK Library Oai Pmh API
  version: '2.0'
  summary: OAI-PMH 2.0 metadata harvesting for the P.K. Kelkar Library catalog.
  description: 'The Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) 2.0 endpoint operated

    by the P.K.'
  contact:
    name: P.K. Kelkar Library, IIT Kanpur
    email: libcirc@iitk.ac.in
    url: https://libserv.iitk.ac.in/
  license:
    name: OAI-PMH 2.0 protocol (Open Archives Initiative)
    url: https://www.openarchives.org/OAI/openarchivesprotocol.html
servers:
- url: https://libserv.iitk.ac.in/cgi-bin/koha
  description: PKK Library Koha OAI-PMH endpoint (production, verified 200 on 2026-09-01)
tags:
- name: oai pmh
  description: OAI-PMH 2.0 metadata harvesting verbs.
paths:
  /oai.pl:
    get:
      tags:
      - oai pmh
      summary: OAI-PMH 2.0 request
      description: Single-entry-point OAI-PMH 2.0 request. The `verb` parameter selects the operation; the remaining parameters are conditional on the verb, per the OAI-PMH 2.0 specification.
      operationId: oaiPmhRequest
      security: []
      parameters:
      - name: verb
        in: query
        required: true
        description: The OAI-PMH verb to invoke.
        schema:
          type: string
          enum:
          - Identify
          - ListMetadataFormats
          - ListSets
          - ListIdentifiers
          - ListRecords
          - GetRecord
      - name: metadataPrefix
        in: query
        required: false
        description: Metadata format to return. Required for ListIdentifiers, ListRecords and GetRecord. This repository supports oai_dc, marc21 and marcxml.
        schema:
          type: string
          enum:
          - oai_dc
          - marc21
          - marcxml
      - name: identifier
        in: query
        required: false
        description: OAI identifier of a single record. Required for GetRecord.
        schema:
          type: string
      - name: from
        in: query
        required: false
        description: Lower bound of the datestamp selective-harvesting range, in the repository's granularity (YYYY-MM-DDThh:mm:ssZ). Earliest datestamp is 2016-09-28T08:43:15Z.
        schema:
          type: string
      - name: until
        in: query
        required: false
        description: Upper bound of the datestamp selective-harvesting range.
        schema:
          type: string
      - name: set
        in: query
        required: false
        description: Set to harvest. Accepted by the protocol but inert on this repository, which returns noSetHierarchy for ListSets.
        schema:
          type: string
      - name: resumptionToken
        in: query
        required: false
        description: Flow-control token returned by a previous incomplete list response.
        schema:
          type: string
      responses:
        '200':
          description: An OAI-PMH 2.0 response envelope. Protocol-level errors (badVerb, badArgument, cannotDisseminateFormat, idDoesNotExist, noRecordsMatch, noSetHierarchy, badResumptionToken) are also returned with HTTP 200 inside an `<error>` element, as the specification requires.
          content:
            text/xml:
              schema:
                type: string
                contentMediaType: text/xml
                description: OAI-PMH 2.0 XML response envelope.
              examples:
                identify:
                  summary: Identify (verified live 2026-09-01)
                  value: "<OAI-PMH xmlns=\"http://www.openarchives.org/OAI/2.0/\">\n  <Identify>\n    <repositoryName>PKK Library</repositoryName>\n    <baseURL>https://libserv.iitk.ac.in/opac/oai.pl</baseURL>\n    <protocolVersion>2.0</protocolVersion>\n    <adminEmail>libcirc@iitk.ac.in</adminEmail>\n    <earliestDatestamp>2016-09-28T08:43:15Z</earliestDatestamp>\n    <deletedRecord>persistent</deletedRecord>\n    <granularity>YYYY-MM-DDThh:mm:ssZ</granularity>\n  </Identify>\n</OAI-PMH>\n"
                noSetHierarchy:
                  summary: ListSets (verified live 2026-09-01)
                  value: "<OAI-PMH xmlns=\"http://www.openarchives.org/OAI/2.0/\">\n  <error code=\"noSetHierarchy\">There are no OAI sets defined</error>\n</OAI-PMH>\n"
x-provenance:
  generated: '2026-09-01'
  method: derived
  source: https://libserv.iitk.ac.in/cgi-bin/koha/oai.pl?verb=Identify
  note: Hand-authored by API Evangelist from live probes of the endpoint on 2026-09-01. IIT Kanpur publishes no OpenAPI for this surface; OAI-PMH 2.0 is a specification, not a vendor contract, and the endpoint is operated by the P.K. Kelkar Library on the institution's own host. The verbs, metadata prefixes, granularity and deletedRecord policy below were read from live Identify / ListMetadataFormats / ListSets / ListIdentifiers responses, not assumed.
x-operator: institution