UTPedia Institutional Repository

UTPedia ("UTP Electronic and Digital Intellectual Asset") holds theses, dissertations and final-year projects. It serves an open OAI-PMH 2.0 endpoint (formats oai_dc, mets, didl, rdf, oai_bibl, uketd_dc), an unauthenticated EPrints REST interface over the eprint, subject and user datasets, per-record JSON export, an OpenSearch 1.1 description document and an RSS 2.0 feed of recent deposits. Earliest datestamp 2012-01-18. Deposit over SWORD is credentialed.

Operations 9

GET /cgi/oai2 OAI-PMH 2.0 request #
GET /rest/ List REST datasets #
GET /rest/eprint/ List eprint identifiers #
GET /rest/eprint/{eprintid}.xml Get one eprint record as EPrints XML #
GET /rest/subject/ List subject terms #
GET /cgi/export/eprint/{eprintid}/JSON/{filename} Export one eprint record as JSON #
GET /cgi/opensearchdescription OpenSearch 1.1 description document #
GET /cgi/latest_tool Feed of most recently deposited items #
GET /sword-app/servicedocument SWORD deposit service document #

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/utpedia"
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

universiti-teknologi-petronas-utpedia-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: UTPedia Institutional Repository (EPrints) — machine-readable surface
  version: '2026-09-01'
  summary: >-
    OAI-PMH 2.0, EPrints REST and export endpoints served by UTPedia, the Universiti Teknologi
    PETRONAS institutional repository, on the institution's own host utpedia.utp.edu.my.
  description: >-
    UTPedia ("UTP Electronic and Digital Intellectual Asset") runs EPrints 3.4.7 on hardware under
    Universiti Teknologi PETRONAS's own registrable domain (utp.edu.my). This document is DERIVED
    from live probes of that deployment on 2026-09-01 — every path, media type and status code
    below was observed with an HTTP request. Universiti Teknologi PETRONAS does not publish an
    OpenAPI description of this surface; this is API Evangelist's reading of it, not the
    institution's contract. The software is EPrints (University of Southampton); the DEPLOYMENT,
    the host, the content and the operation are the institution's.
  contact:
    name: UTPedia repository administrator
    email: sharifah_fahimah@utp.edu.my
    url: https://utpedia.utp.edu.my/
  x-operator: institution
  x-operator-evidence: >-
    Host utpedia.utp.edu.my is under the institution's own registrable domain utp.edu.my; the
    OAI-PMH Identify response names the repository "UTP Electronic and Digital Intellectual Asset"
    with adminEmail sharifah_fahimah@utp.edu.my and repositoryIdentifier utpedia.utp.edu.my.
  x-software: EPrints 3.4.7
  x-provenance:
    generated: '2026-09-01'
    method: derived
    source:
      - https://utpedia.utp.edu.my/cgi/oai2?verb=Identify
      - https://utpedia.utp.edu.my/cgi/oai2?verb=ListMetadataFormats
      - https://utpedia.utp.edu.my/cgi/oai2?verb=ListSets
      - https://utpedia.utp.edu.my/rest/
      - https://utpedia.utp.edu.my/rest/eprint/376.xml
      - https://utpedia.utp.edu.my/cgi/export/eprint/376/JSON/utpedia-eprint-376.js
      - https://utpedia.utp.edu.my/cgi/opensearchdescription
    note: >-
      Derived by API Evangelist from probed responses. No endpoint appears here that was not
      requested and observed.
servers:
  - url: https://utpedia.utp.edu.my
    description: UTPedia institutional repository (TLS). The plain-http form advertised inside the
      OAI-PMH baseURL element did not complete a connection from our probe host on 2026-09-01.
tags:
  - name: OAI-PMH
    description: OAI-PMH 2.0 metadata harvesting interface.
  - name: EPrints REST
    description: EPrints read-only REST dataset interface.
  - name: Export
    description: Per-record export in a named format.
  - name: Discovery
    description: Descriptor and feed documents.
paths:
  /cgi/oai2:
    get:
      tags: [OAI-PMH]
      operationId: oaiPmh
      summary: OAI-PMH 2.0 request
      description: >-
        Single OAI-PMH endpoint. Protocol-level failures are returned as HTTP 200 carrying an
        OAI-PMH <error code="..."> element, per the OAI-PMH 2.0 specification — observed codes
        badVerb and badArgument.
      parameters:
        - name: verb
          in: query
          required: true
          schema:
            type: string
            enum: [Identify, ListMetadataFormats, ListSets, ListIdentifiers, ListRecords, GetRecord]
        - name: metadataPrefix
          in: query
          required: false
          schema:
            type: string
            enum: [oai_dc, mets, didl, rdf, oai_bibl, uketd_dc]
          description: Metadata formats observed in the ListMetadataFormats response.
        - name: identifier
          in: query
          required: false
          schema:
            type: string
            examples: ['oai:utpedia.utp.edu.my:376']
        - name: set
          in: query
          required: false
          schema:
            type: string
        - name: from
          in: query
          required: false
          schema: { type: string, format: date-time }
        - name: until
          in: query
          required: false
          schema: { type: string, format: date-time }
        - name: resumptionToken
          in: query
          required: false
          schema: { type: string }
      responses:
        '200':
          description: >-
            OAI-PMH response document. Carries either the requested verb element or an
            <error code> element; both are HTTP 200.
          content:
            text/xml:
              schema:
                type: string
                contentMediaType: text/xml
  /rest/:
    get:
      tags: [EPrints REST]
      operationId: listDatasets
      summary: List REST datasets
      description: Observed datasets — eprint, user, subject. Returns XHTML, not JSON.
      responses:
        '200':
          description: XHTML dataset index.
          content:
            text/html:
              schema: { type: string }
  /rest/eprint/:
    get:
      tags: [EPrints REST]
      operationId: listEprints
      summary: List eprint identifiers
      responses:
        '200':
          description: XHTML list of eprint ids.
          content:
            text/html:
              schema: { type: string }
  /rest/eprint/{eprintid}.xml:
    get:
      tags: [EPrints REST]
      operationId: getEprintXml
      summary: Get one eprint record as EPrints XML
      parameters:
        - name: eprintid
          in: path
          required: true
          schema: { type: integer }
          examples:
            observed: { value: 376 }
      responses:
        '200':
          description: EPrints XML document (namespace http://eprints.org/ep2/data/2.0).
          content:
            text/xml:
              schema: { type: string, contentMediaType: text/xml }
        '404':
          description: Unknown eprint id — observed with id 99999999.
          content:
            text/html:
              schema: { type: string }
  /rest/subject/:
    get:
      tags: [EPrints REST]
      operationId: listSubjects
      summary: List subject terms
      responses:
        '200':
          description: XHTML list of subject identifiers.
          content:
            text/html:
              schema: { type: string }
  /cgi/export/eprint/{eprintid}/JSON/{filename}:
    get:
      tags: [Export]
      operationId: exportEprintJson
      summary: Export one eprint record as JSON
      description: >-
        The only JSON-typed response observed on this deployment
        (application/json; charset=utf-8). Schema at
        json-schema/universiti-teknologi-petronas-eprint-json-schema.json.
      parameters:
        - name: eprintid
          in: path
          required: true
          schema: { type: integer }
          examples:
            observed: { value: 376 }
        - name: filename
          in: path
          required: true
          schema: { type: string }
          description: EPrints requires a trailing filename; observed form utpedia-eprint-376.js
      responses:
        '200':
          description: EPrints record serialised as JSON.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EPrintRecord'
        '401':
          description: >-
            Returned by the sibling scholars.utp.edu.my deployment for records whose export is
            not public; recorded here because the two deployments share software and differ in
            configuration.
  /cgi/opensearchdescription:
    get:
      tags: [Discovery]
      operationId: getOpenSearchDescription
      summary: OpenSearch 1.1 description document
      responses:
        '200':
          description: OpenSearch description document.
          content:
            application/opensearchdescription+xml:
              schema: { type: string }
  /cgi/latest_tool:
    get:
      tags: [Discovery]
      operationId: getLatestFeed
      summary: Feed of most recently deposited items
      parameters:
        - name: output
          in: query
          required: false
          schema: { type: string, enum: [RSS2, Atom] }
      responses:
        '200':
          description: RSS 2.0 feed.
          content:
            application/rss+xml:
              schema: { type: string }
  /sword-app/servicedocument:
    get:
      tags: [Discovery]
      operationId: getSwordServiceDocument
      summary: SWORD deposit service document
      description: >-
        Present and gated. Observed HTTP 401 with WWW-Authenticate — deposit requires repository
        credentials, which API Evangelist does not hold and did not attempt.
      security:
        - basicAuth: []
      responses:
        '401':
          description: Unauthorized — observed.
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: EPrints SWORD deposit credentials. Read paths above require no authentication.
  schemas:
    EPrintRecord:
      type: object
      description: >-
        Shape observed in the JSON export of eprint 376 on 2026-09-01. Field set is what that
        record carried; EPrints records vary by item type.
      properties:
        eprintid: { type: integer }
        rev_number: { type: integer }
        eprint_status: { type: string, examples: [archive] }
        userid: { type: integer }
        dir: { type: string }
        datestamp: { type: string }
        lastmod: { type: string }
        status_changed: { type: string }
        type: { type: string, examples: [fyp] }
        metadata_visibility: { type: string, examples: [show] }
        creators:
          type: array
          items:
            type: object
            properties:
              name:
                type: object
                properties:
                  family: { type: string }
                  given: { type: string }
                  lineage: { type: [string, 'null'] }
                  honourific: { type: [string, 'null'] }
        title: { type: string }
        ispublished: { type: string }
        subjects: { type: array, items: { type: string } }
        divisions: { type: array, items: { type: string } }
        full_text_status: { type: string }
        abstract: { type: string }
        date: { type: string }
        date_type: { type: string }
        publisher: { type: string }
        place_of_pub: { type: string }
        item_issues_count: { type: integer }
        documents: { type: array, items: { type: object } }
        uri: { type: string, format: uri }
      required: [eprintid, eprint_status, type, uri]