Lund University Publications Search API

Keyless REST/JSON(P) search over the Lund University Publications (LUP) research-output database, operated by Lund University Libraries on Lund's own host. Supports CQL-style queries, paging and sorting, plus per-record and bulk bibliographic export in BibTeX, RIS, EndNote, CSV and Excel. Author records carry ORCID iDs and DOIs. Note that the JSON Schema Lund publishes at /search/schema/publication.json describes the upstream repository record model — it still carries UGent classification codes and VABB fields — and not the shape the live search endpoint returns; the OpenAPI below models both, with PublicationHit derived from observed live responses.

Business capability
Scholarly Output & Publication Management BC-4780.40

Operations 2

GET /publication Search publications #
GET /publication/{id} Retrieve or export a single publication #

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/lund-publication-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

lund-publication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lund University Publications (LUP) Search Publication API
  description: REST/JSON(P) search interface over the Lund University Publications (LUP) database.
  version: '1.0'
  contact:
    name: Lund University Libraries
    url: https://lup.lub.lu.se/search/doc/api
  license:
    name: See LUP terms of use
    url: https://lup.lub.lu.se/search/doc/api
servers:
- url: https://lup.lub.lu.se/search
  description: Lund University Publications search service
tags:
- name: Publication
paths:
  /publication:
    get:
      operationId: searchPublications
      summary: Search publications
      description: Full-text and field search over LUP publications. Supports CQL-style queries via the q parameter, paging, sorting, and JSON or JSONP output.
      parameters:
      - name: q
        in: query
        description: Search query (free text or CQL expression).
        required: false
        schema:
          type: string
        example: dna
      - name: format
        in: query
        description: Response format.
        required: false
        schema:
          type: string
          enum:
          - json
          - jsonp
          default: json
      - name: callback
        in: query
        description: JSONP callback function name (used when format=jsonp).
        required: false
        schema:
          type: string
      - name: sort
        in: query
        description: Comma-separated sort keys with .asc or .desc direction, e.g. year.desc,title.asc.
        required: false
        schema:
          type: string
        example: year.desc,title.asc
      - name: start
        in: query
        description: Zero-based pagination offset of the first returned hit.
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
      - name: limit
        in: query
        description: Maximum number of hits to return per request.
        required: false
        schema:
          type: integer
          minimum: 0
          default: 10
      responses:
        '200':
          description: A page of publication search results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
      tags:
      - Publication
  /publication/{id}:
    get:
      operationId: getPublication
      summary: Retrieve or export a single publication
      description: Retrieve a single publication by its LUP id. Use the format query parameter (or a format file extension on the path) to export the record in a bibliographic format.
      parameters:
      - name: id
        in: path
        required: true
        description: Unique LUP publication id.
        schema:
          type: string
      - name: format
        in: query
        required: false
        description: Export/serialization format for the record.
        schema:
          type: string
          enum:
          - json
          - jsonp
          - xls
          - xls2
          - csv
          - csv2
          - bibtex
          - ris
          - enw
          default: json
      responses:
        '200':
          description: The requested publication record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Publication'
            text/plain:
              schema:
                type: string
        '404':
          description: No publication found for the given id.
      tags:
      - Publication
components:
  schemas:
    File:
      type: object
      required:
      - _id
      - content_type
      - name
      - access
      properties:
        _id:
          type: string
        content_type:
          type: string
        name:
          type: string
        description:
          type: string
        access:
          type: string
          enum:
          - openAccess
          - lu
          - admin
        size:
          type: integer
          minimum: 1
    Affiliation:
      type: object
      properties:
        ugent_id:
          type: string
          description: LU organization id
        path:
          type: object
          properties:
            ugent_id:
              type: string
    HitAuthor:
      type: object
      description: An author as returned in a search hit.
      properties:
        fullName:
          type: string
        givenName:
          type: string
        surname:
          type: string
        uuid:
          type: string
        luLdapId:
          type: string
        orcid:
          type: string
        role:
          type: string
        affiliation:
          type: array
          items:
            type: object
            properties:
              name:
                type: array
                items:
                  type: object
                  properties:
                    text:
                      type: string
                    lang:
                      type: string
              organizationNumber:
                type: string
              isExternal:
                type: integer
    SearchResult:
      type: object
      description: A page of publication search results.
      properties:
        total:
          type: integer
          description: Total number of publications matching the query.
        size:
          type: integer
          description: Number of hits actually returned in this page.
        start:
          type: integer
          description: Zero-based offset of the first returned hit.
        limit:
          type: integer
          description: Maximum number of hits requested per page.
        hits:
          type: array
          description: List of publication hits for this page.
          items:
            $ref: '#/components/schemas/PublicationHit'
    PublicationHit:
      type: object
      description: A publication as returned by the search endpoint. Fields reflect the live JSON response shape, which differs from the export/record schema.
      properties:
        _id:
          type: string
        uuid:
          type: string
        mainTitle:
          type: string
        subtitle:
          type: string
        sortTitle:
          type: string
        abstract:
          type: array
          items:
            type: object
            properties:
              text:
                type: string
              lang:
                type: string
        type:
          type: string
        documentType:
          type: string
        documentTypeFull:
          type: string
        documentSubtype:
          type: string
        lupType:
          type: string
        lupTypeFull:
          type: string
        lupSubtype:
          type: string
        subject:
          type: array
          items:
            type: string
        keyword:
          type: array
          items:
            type: string
        publication:
          type: string
        publisher:
          type: string
        publishingYear:
          type: string
        publishingDate:
          type: string
        publicationStatus:
          type: string
        submissionStatus:
          type: string
        peerReviewed:
          type: boolean
        openAccess:
          type: integer
        isNonLuPublication:
          type: boolean
        language:
          type: array
          items:
            type: string
        issn:
          type: array
          items:
            type: string
        volume:
          type: string
        issue:
          type: string
        articleNumber:
          type: string
        pagesStart:
          type: string
        pagesEnd:
          type: string
        portalUrl:
          type: string
          format: uri
        doiInfo:
          type: object
        externalIdentifier:
          type: array
          items:
            type: object
        totalNumberOfAuthors:
          type: integer
        author:
          type: array
          items:
            $ref: '#/components/schemas/HitAuthor'
        first_author:
          $ref: '#/components/schemas/HitAuthor'
        last_author:
          $ref: '#/components/schemas/HitAuthor'
        contributor_id:
          type: array
          items:
            type: string
        department:
          type: array
          items:
            type: object
        researchGroup:
          type: array
          items:
            type: object
        record_fulltext_access:
          type: string
        dateCreated:
          type: string
        dateLastChanged:
          type: string
        dateFirstPublic:
          type: string
        dateApproved:
          type: string
        datePureModified:
          type: string
        oai_datestamp:
          type: string
        digest:
          type: string
        additionalInfo:
          type: object
    Publication:
      type: object
      description: A LU publication as defined by the LUP publication JSON Schema (https://lup.lub.lu.se/search/schema/publication.json). Used for the single-record/export representation.
      required:
      - _id
      - type
      - classification
      - status
      - external
      - title
      properties:
        _id:
          type: string
          description: unique publication id
        type:
          type: string
          enum:
          - book
          - bookChapter
          - bookEditor
          - conference
          - dissertation
          - journalArticle
          - licentiateThesis
          - misc
        classification:
          type: string
          enum:
          - A1
          - A2
          - A3
          - A4
          - B1
          - B2
          - B3
          - C1
          - C3
          - D1
          - D2
          - P1
          - V
          - U
          description: UGent classification code of publication
        status:
          type: string
          enum:
          - unsubmitted
          - submitted
          - returned
          - public
          - pdeleted
          description: record status (public API only returns 'public')
        publication_status:
          type: string
          enum:
          - unpublished
          - submitted
          - inpress
          - published
        external:
          type: integer
          enum:
          - 0
          - 1
        title:
          type: string
        alternative_title:
          type: array
          items:
            type: string
        abstract:
          type: array
          items:
            type: string
        keyword:
          type: array
          items:
            type: string
        year:
          type: string
          pattern: ^\d{4}$
        language:
          type: array
          items:
            type: string
            minLength: 3
            maxLength: 3
        subject:
          type: array
          items:
            type: string
            enum:
            - Agriculture and Food Sciences
            - Arts and Architecture
            - Biology and Life Sciences
            - Business and Economics
            - Chemistry
            - Cultural Sciences
            - Earth and Environmental Sciences
            - General Works
            - History and Archaeology
            - Languages and Literatures
            - Law and Political Science
            - Mathematics and Statistics
            - Medicine and Health Sciences
            - Performing Arts
            - Philosophy and Religion
            - Physics and Astronomy
            - Science General
            - Social Sciences
            - Technology and Engineering
            - Veterinary Sciences
        author:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        editor:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        promoter:
          type: array
          items:
            $ref: '#/components/schemas/Person'
        affiliation:
          type: array
          items:
            $ref: '#/components/schemas/Affiliation'
        parent:
          type: object
          properties:
            title:
              type: string
            short_title:
              type: string
        publisher:
          type: object
          properties:
            location:
              type: string
            name:
              type: string
        volume:
          type: string
        issue:
          type: string
        article_number:
          type: string
        edition:
          type: string
        isbn:
          type: array
          items:
            type: string
        issn:
          type: array
          items:
            type: string
        doi:
          type: array
          items:
            type: string
        wos_id:
          type: string
        file:
          type: array
          items:
            $ref: '#/components/schemas/File'
        jcr:
          $ref: '#/components/schemas/Jcr'
        date_created:
          type: string
        date_updated:
          type: string
        date_submitted:
          type: string
        date_approved:
          type: string
    Person:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
          description: full name, first name first
        name_last_first:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        ugent_id:
          type: array
          items:
            type: string
            pattern: ^\d{12}$
        affiliation:
          type: array
          items:
            $ref: '#/components/schemas/Affiliation'
    Jcr:
      type: object
      description: Journal Citation Reports info for the publication year.
      properties:
        category_quartile:
          type: integer
          minimum: 1
          maximum: 4
        category_decile:
          type: integer
          minimum: 1
          maximum: 10
        category_vigintile:
          type: integer
          minimum: 1
          maximum: 20
        total_cites:
          type: integer
          minimum: 0
        immediacy_index:
          type: number
          minimum: 0
        impact_factor:
          type: number
          minimum: 0
        impact_factor_5year:
          type: number
          minimum: 0
        eigenfactor:
          type: number
          minimum: 0
        prev_impact_factor:
          type: number
          minimum: 0
        prev_category_quartile:
          type: integer
          minimum: 1
          maximum: 4