IIT Kharagpur ERP Continuing Education Programme Brochure Endpoint

The only unauthenticated endpoint on the IIT Kharagpur estate that the institute wrote itself. The ERP at erp.iitkgp.ac.in is a JAX-RS application on Apache Tomcat 8.0.51 behind a bespoke session SSO — /InfoCellDetails/resources/application.wadl 302s to /SSOAdministration/login.htm and /InfoCellDetails/ returns 403 — but one resource namespace, /InfoCellDetails/resources/external/, is deliberately open, and the institute's own homepage links a single operation in it, cepdata, two hundred times, once per Continuing Education Programme course. GET with a structured course_id returns the course brochure as application/pdf with no key, cookie or Referer required. Verified live 2026-09-01 against eight course_id values: five returned PDFs of 74 KB to 2.25 MB, three returned HTTP 200 with Content-Type text/plain and a zero-byte body, which is also the response to an unknown course_id and to no course_id at all — there is no 404. Accept: application/json returns 406 with a Tomcat error page. This is a real course-catalog surface, small and undocumented, and it is institution engineering rather than a vendor's.

Operations 1

GET /cepdata Fetch the brochure for one Continuing Education Programme course #

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/erp-cep-brochures"
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-erp-cep-openapi.yml Raw ↑
# generated: '2026-09-01'
# method: derived
# source: live probes of https://erp.iitkgp.ac.in/InfoCellDetails/resources/external/cepdata on
#   2026-09-01, using the 200 distinct course_id values linked from https://www.iitkgp.ac.in/ and
#   an Accept: application/json negotiation test; plus the SSO redirect observed on
#   /InfoCellDetails/resources/application.wadl.
# x-operator: institution
# NOTE: IIT Kharagpur publishes no OpenAPI and no developer documentation for this endpoint. It was
# found by reading the institute homepage, which links it 200 times. Every path, parameter, status
# code and content type below was observed in a live response. This is the pristine pre-refine copy.
openapi: 3.1.0
info:
  title: IIT Kharagpur ERP Continuing Education Programme Brochure Endpoint
  summary: >-
    Public, unauthenticated document endpoint of the IIT Kharagpur ERP that returns the brochure
    PDF for a Continuing Education Programme course, keyed by its institutional course_id.
  description: >-
    IIT Kharagpur's ERP at erp.iitkgp.ac.in is a JAX-RS application behind the institute's own
    SSO (Apache Tomcat 8.0.51; requesting /InfoCellDetails/resources/application.wadl 302s to
    /SSOAdministration/login.htm). One resource namespace is deliberately exposed to the public
    without authentication — /InfoCellDetails/resources/external/ — and the institute's own
    homepage links a single operation in it, `cepdata`, two hundred times, once per Continuing
    Education Programme and Continuing Education Foundation course on offer.

    This is institution-authored software on an institution host, not a vendor platform, and it
    is the only unauthenticated callable endpoint found anywhere on the IIT Kharagpur estate that
    the institute itself wrote. It is described here as what it is: a single GET, one required
    query parameter, a PDF or an empty body.

    Verified live 2026-09-01 against eight course_id values taken from the homepage.
    CEP/CSC/25-26/AE/2323 returned a 2,250,896-byte PDF; CEP/WRK/25-26/CD/2325 returned 241,965
    bytes; IIT/CEP/CFC/CFC/2025-2026/HS/144, .../HS/196 and .../MT/107 all returned PDFs.
    IIT/CEP/CFC/CFC/2025-2026/CS/197, .../CS/209 and .../2026-2027/AI/28 returned HTTP 200 with
    Content-Type text/plain and a zero-byte body — the endpoint's way of saying "no brochure
    published for this course". There is no 404 and no error document.

    The course_id values are structured institutional identifiers of the form
    IIT/CEP/<programme>/<programme>/<academic year>/<department code>/<serial> or the shorter
    CEP/<type>/<yy-yy>/<department code>/<serial>. The endpoint does not enumerate them; the
    only published index is the institute homepage.
  version: '1.0'
  contact:
    name: IIT Kharagpur Continuing Education Programme
    url: https://www.iitkgp.ac.in/
  license:
    name: No API terms of use published for this endpoint
    identifier: NONE
servers:
  - url: https://erp.iitkgp.ac.in/InfoCellDetails/resources/external
    description: >-
      Unauthenticated `external` resource namespace of the IIT Kharagpur ERP. Sibling namespaces
      under /InfoCellDetails/resources/ are SSO-gated; /InfoCellDetails/ itself returns 403.
tags:
  - name: continuing-education
    description: >-
      Continuing Education Programme course documents. One operation, verified live 2026-09-01.
paths:
  /cepdata:
    get:
      tags: [continuing-education]
      operationId: getCepBrochure
      summary: Fetch the brochure for one Continuing Education Programme course
      description: >-
        Returns the course brochure as a PDF. No API key, cookie or Referer is required; the
        JSESSIONID cookie the server sets is not needed on the request. Content negotiation is
        not supported — sending `Accept: application/json` returns HTTP 406 with a Tomcat error
        page, which is how the underlying JAX-RS stack was identified.
      parameters:
        - name: course_id
          in: query
          required: true
          description: >-
            Institutional course identifier. Slashes are sent unencoded by the institute's own
            links and are accepted that way. Omitting the parameter returns HTTP 200 with an
            empty text/plain body, the same response as an unknown course.
          schema:
            type: string
          examples:
            longForm:
              value: IIT/CEP/CFC/CFC/2025-2026/HS/144
            shortForm:
              value: CEP/WRK/25-26/CD/2325
      responses:
        '200':
          description: >-
            Either the brochure PDF (Content-Type application/pdf, chunked) or — for a course
            with no brochure, an unknown course_id, or no course_id at all — Content-Type
            text/plain with a zero-length body. The status code does not distinguish the two;
            the Content-Type does.
          content:
            application/pdf:
              schema:
                type: string
                contentMediaType: application/pdf
                contentEncoding: binary
            text/plain:
              schema:
                type: string
                description: Always empty. Signals "no document" without a 404.
                example: ''
        '406':
          description: >-
            Returned when the request asks for a representation the resource cannot produce,
            e.g. `Accept: application/json`. Body is an Apache Tomcat 8.0.51 HTML error report,
            not a machine-readable problem document.
          content:
            text/html:
              schema:
                type: string