IIT Kharagpur Institutional Digital Repository OpenSearch Interface

OpenSearch 1.1 query interface over the Central Library's Institutional Digital Repository, running DSpace 6.0 self-hosted on the institute's own www.idr.iitkgp.ac.in. Verified live 2026-09-01 — /xmlui/open-search/description.xml returns a 603-byte description document naming LongName "Central Library IIT Kharagpur" and Contact dspace-help@library.iitkgp.ac.in, an institution address on the institution's own domain, and /xmlui/open-search/discover returns an Atom 1.0 feed carrying the opensearch: and dc: namespaces. The repository holds 8,162 items; query, format, start, rpp, sort_by, order and scope were each exercised and confirmed. DSpace is open-source software the institute installs and runs itself, not a vendor tenancy, so the host, the contact, the identifiers and the content are all IIT Kharagpur's — but the software is shared by thousands of deployments, so the OpenAPI stored here is a derived description of THIS deployment's observed behaviour, not a DSpace product contract. Three defects are recorded rather than smoothed over: the host has no TLS listener (https:// fails, idr.iitkgp.ac.in does not resolve), every and in the feed is emitted with the authority http://127.0.0.1, and the handle prefix is the DSpace installation default 123456789, so no item carries a persistent identifier. No OAI-PMH provider, DSpace REST API or SWORD service document is deployed — the nginx front end proxies only /xmlui.

Operations 2

GET /open-search/description.xml Retrieve the OpenSearch 1.1 description document #
GET /open-search/discover Search the institutional repository #

Documentation

Specifications

Schemas & Data

Other Resources

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/idr-opensearch"
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

indian-institute-of-technology-kharagpur-idr-opensearch-openapi.yml Raw ↑
# generated: '2026-09-01'
# method: derived
# source: live probes of http://www.idr.iitkgp.ac.in/xmlui/ on 2026-09-01 — the OpenSearch
#   description document, and the /open-search/discover endpoint exercised with query, format,
#   start, rpp, sort_by, order and scope, plus a parameterless request.
# x-operator: institution
# NOTE: IIT Kharagpur publishes no OpenAPI for this endpoint. Every path, parameter and response
# shape below was observed in a live response; nothing is assumed from the OpenSearch specification
# alone. The repository software is DSpace 6.0 (open source, self-hosted); the host, the contact
# address, the identifiers and the content are the institution's. This is the pristine pre-refine copy.
openapi: 3.1.0
info:
  title: IIT Kharagpur Institutional Digital Repository OpenSearch Interface
  summary: >-
    Institution-hosted OpenSearch 1.1 query interface over the IIT Kharagpur Central Library
    Institutional Digital Repository (DSpace 6.0).
  description: >-
    The Institutional Digital Repository (IDR) of the Central Library, IIT Kharagpur runs
    DSpace 6.0 on the institute's own host www.idr.iitkgp.ac.in and was the first institutional
    repository among the IITs. Its only machine-readable query surface is the DSpace OpenSearch
    module, which is enabled and reachable without authentication at
    /xmlui/open-search/description.xml (the OpenSearch 1.1 description document) and
    /xmlui/open-search/discover (the query endpoint). The description document declares
    ShortName "DSpace", LongName "Central Library IIT Kharagpur" and Contact
    dspace-help@library.iitkgp.ac.in — an institution address on the institution's own domain.

    Verified live 2026-09-01: the repository holds 8,162 items; a query for "rice" returns 854
    results, a query for "machine learning" 696. Results come back as an Atom 1.0 feed carrying
    the opensearch: (totalResults, itemsPerPage, startIndex, Query) and dc: namespaces.

    Two limits are real and are recorded rather than smoothed over. First, the host serves
    plain HTTP only — https://www.idr.iitkgp.ac.in does not complete a TLS handshake. Second,
    the DSpace base URL is misconfigured: every <id> and <link> element in the feed is emitted
    as http://127.0.0.1/xmlui/handle/123456789/NNNN, so the identifiers a harvester receives
    are localhost URLs and are not dereferenceable without rewriting the authority. The handle
    prefix is also the DSpace installation default 123456789, i.e. no Handle prefix is registered.

    No OAI-PMH provider, no DSpace REST API and no SWORD service document are deployed: the
    nginx front end proxies only /xmlui, and /oai/request, /dspace-oai/request, /server/oai/request,
    /xmlui/OAI/request, /rest/status and /sword/servicedocument all return 404.
  version: '1.1'
  contact:
    name: IIT Kharagpur Central Library — DSpace administrator
    email: dspace-help@library.iitkgp.ac.in
    url: http://www.idr.iitkgp.ac.in/xmlui/
  license:
    name: No metadata reuse policy declared by the repository
    identifier: NONE
servers:
  - url: http://www.idr.iitkgp.ac.in/xmlui
    description: >-
      IIT Kharagpur Institutional Digital Repository (DSpace 6.0) — institution-operated,
      unauthenticated, HTTP only (no TLS listener on this host).
tags:
  - name: opensearch
    description: OpenSearch 1.1 description and query operations. All parameters verified live 2026-09-01.
paths:
  /open-search/description.xml:
    get:
      tags: [opensearch]
      operationId: getOpenSearchDescription
      summary: Retrieve the OpenSearch 1.1 description document
      description: >-
        Returns the repository's OpenSearch description document (603 bytes, verified 2026-09-01).
        It carries ShortName, LongName "Central Library IIT Kharagpur", Description, InputEncoding,
        OutputEncoding, an example Query with searchTerms "photosynthesis", Tags "IR DSpace",
        Contact dspace-help@library.iitkgp.ac.in and an Image element. It does NOT declare a
        <Url> template, so the query endpoint below has to be discovered rather than read off
        the description.
      responses:
        '200':
          description: OpenSearch description document.
          content:
            application/xml:
              schema:
                type: string
                contentMediaType: application/opensearchdescription+xml
  /open-search/discover:
    get:
      tags: [opensearch]
      operationId: discover
      summary: Search the institutional repository
      description: >-
        Free-text search across the repository index. Responses are always a syndication feed;
        `format` selects the flavour. Observed behaviour: format=atom returns
        application/atom+xml; format=rss, format=html, format=json and an omitted format all
        return text/xml carrying the same Atom document, i.e. unsupported format values fall
        back silently rather than erroring. A request with no `query` returns HTTP 200 and an
        empty feed, not a 4xx.
      parameters:
        - name: query
          in: query
          required: false
          description: >-
            Search terms. `*` matches everything (8,162 items on 2026-09-01). Omitting it
            returns an empty feed with HTTP 200.
          schema: { type: string }
          example: rice
        - name: format
          in: query
          required: false
          description: >-
            Response flavour. Only `atom` changes the Content-Type (to application/atom+xml);
            every other value, including unsupported ones, yields text/xml with the same body.
          schema:
            type: string
            enum: [atom, rss, html]
            default: rss
        - name: start
          in: query
          required: false
          description: 1-based offset of the first result; echoed back as opensearch:startIndex.
          schema: { type: integer, minimum: 1 }
          example: 10
        - name: rpp
          in: query
          required: false
          description: Results per page; echoed back as opensearch:itemsPerPage. Default 20 when omitted.
          schema: { type: integer, minimum: 1, default: 20 }
          example: 3
        - name: sort_by
          in: query
          required: false
          description: >-
            Solr sort field. Verified live with dc.date.issued_dt; DSpace 6 also indexes
            score and dc.title_sort.
          schema: { type: string }
          example: dc.date.issued_dt
        - name: order
          in: query
          required: false
          description: Sort direction, used with sort_by.
          schema:
            type: string
            enum: [ASC, DESC]
        - name: scope
          in: query
          required: false
          description: >-
            Restrict the search to one community or collection by handle. Verified live —
            scope=123456789/1 narrowed the "rice" result set from 854 to 852.
          schema: { type: string }
          example: 123456789/1
      responses:
        '200':
          description: >-
            Syndication feed of matching items. Returned for every request observed, including
            a request with no parameters at all.
          content:
            application/atom+xml:
              schema:
                $ref: '#/components/schemas/OpenSearchFeed'
            text/xml:
              schema:
                $ref: '#/components/schemas/OpenSearchFeed'
components:
  schemas:
    OpenSearchFeed:
      type: object
      description: >-
        Atom 1.0 feed in the http://www.w3.org/2005/Atom namespace, extended with
        http://a9.com/-/spec/opensearch/1.1/ and http://purl.org/dc/elements/1.1/. Shape taken
        from a live response, not from the OpenSearch schema.
      properties:
        title:
          type: string
          description: Always "Central Library IIT Kharagpur".
          example: Central Library IIT Kharagpur
        subtitle:
          type: string
          description: The stock DSpace subtitle string.
        id:
          type: string
          description: >-
            Feed identity. Emitted as http://127.0.0.1/xmlui because dspace.baseUrl is
            misconfigured on this deployment.
          example: http://127.0.0.1/xmlui
        updated:
          type: string
          format: date-time
        opensearch:totalResults:
          type: integer
          example: 854
        opensearch:itemsPerPage:
          type: integer
          example: 2
        opensearch:startIndex:
          type: integer
          example: 1
        entry:
          type: array
          items:
            $ref: '#/components/schemas/Item'
    Item:
      type: object
      description: One repository item, as emitted in an <entry> element.
      properties:
        title:
          type: string
          example: Development and Study of a Pneumatic Rice Polishing System
        author:
          type: object
          properties:
            name:
              type: string
              example: Chodisetti, Someswararao
        id:
          type: string
          description: >-
            Item identity. Emitted as http://127.0.0.1/xmlui/handle/123456789/NNNN — a localhost
            URL, not dereferenceable. The dereferenceable form is
            http://www.idr.iitkgp.ac.in/xmlui/handle/123456789/NNNN.
          example: http://127.0.0.1/xmlui/handle/123456789/8724
        link:
          type: string
          description: Alternate link, carrying the same misconfigured authority as id.
        published:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        summary:
          type: string
        dc:date:
          type: string
          format: date-time