Delft University of Technology Datasets API

Published datasets (called "articles" on the Figshare-compatible v2 surface).

Business capability
Scholarly Output & Publication Management BC-4780.40

Operations 6

GET /v2/articles List published datasets #
POST /v2/articles/search Search published datasets #
GET /v2/articles/{uuid} Get one published dataset #
GET /v2/articles/{uuid}/files List the files attached to a dataset #
GET /v2/articles/{uuid}/versions List the published versions of a dataset #
GET /v3/datasets List published datasets (djehuty v3) #

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/tu-delft-datasets-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

tu-delft-datasets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 4TU.ResearchData Datasets API
  version: v2+v3
  summary: Public read API for the 4TU.ResearchData repository operated by TU Delft Library.
  description: Public, unauthenticated read interface to the 4TU.ResearchData repository at https://data.4tu.nl, the science/engineering/design research data repository of the 4TU.Federation.
  contact:
    name: 4TU.ResearchData
    email: researchdata@4tu.nl
    url: https://data.4tu.nl/info/about-4turesearchdata/contact
  license:
    name: EUPL-1.2 (djehuty software)
    url: https://github.com/4TUResearchData/djehuty/blob/main/LICENSE
  termsOfService: https://data.4tu.nl/info/about-4turesearchdata/policies-guidelines
servers:
- url: https://data.4tu.nl
  description: 4TU.ResearchData production (TU Delft Library operated)
tags:
- name: Datasets
  description: Published datasets (called "articles" on the Figshare-compatible v2 surface).
paths:
  /v2/articles:
    get:
      tags:
      - Datasets
      operationId: listArticles
      summary: List published datasets
      description: Returns a page of publicly published datasets, newest first by default.
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 10
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
      - name: order
        in: query
        required: false
        schema:
          type: string
          examples:
          - published_date
      - name: order_direction
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: institution
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: A list of dataset summaries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatasetSummary'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/articles/search:
    post:
      tags:
      - Datasets
      operationId: searchArticles
      summary: Search published datasets
      description: 'Full-text and faceted search over published datasets. A GET against this path returns 405 with the body `Acceptable methods: [''POST'']`.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                search_for:
                  type: string
                limit:
                  type: integer
                offset:
                  type: integer
                order:
                  type: string
                order_direction:
                  type: string
                  enum:
                  - asc
                  - desc
      responses:
        '200':
          description: Matching dataset summaries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatasetSummary'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
  /v2/articles/{uuid}:
    get:
      tags:
      - Datasets
      operationId: getArticle
      summary: Get one published dataset
      parameters:
      - $ref: '#/components/parameters/Uuid'
      responses:
        '200':
          description: The full dataset record, including files, authors, funding and license.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataset'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/articles/{uuid}/files:
    get:
      tags:
      - Datasets
      operationId: listArticleFiles
      summary: List the files attached to a dataset
      parameters:
      - $ref: '#/components/parameters/Uuid'
      responses:
        '200':
          description: Files, with size and both supplied and computed MD5 checksums.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/File'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/articles/{uuid}/versions:
    get:
      tags:
      - Datasets
      operationId: listArticleVersions
      summary: List the published versions of a dataset
      parameters:
      - $ref: '#/components/parameters/Uuid'
      responses:
        '200':
          description: Version numbers with their canonical API URLs.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    version:
                      type: integer
                    url:
                      type: string
                      format: uri
        '404':
          $ref: '#/components/responses/NotFound'
  /v3/datasets:
    get:
      tags:
      - Datasets
      operationId: listDatasets
      summary: List published datasets (djehuty v3)
      description: djehuty's own dataset listing. Same record shape as /v2/articles; note that the `url` field in each record still points back at the /v2 path.
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        schema:
          type: integer
      - name: order
        in: query
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
      responses:
        '200':
          description: A list of dataset summaries.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatasetSummary'
components:
  schemas:
    Author:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        orcid_id:
          type:
          - string
          - 'null'
          description: ORCID iD, where the depositor supplied one.
        is_active:
          type: boolean
        url_name:
          type:
          - string
          - 'null'
    DatasetSummary:
      type: object
      properties:
        id:
          type:
          - integer
          - 'null'
          description: Legacy Figshare numeric id; null on djehuty-native records.
        uuid:
          type: string
          format: uuid
        title:
          type: string
        doi:
          type: string
          description: DataCite DOI under the 10.4121 prefix.
        handle:
          type:
          - string
          - 'null'
        url:
          type: string
          format: uri
        published_date:
          type:
          - string
          - 'null'
        thumb:
          type:
          - string
          - 'null'
        defined_type:
          type:
          - integer
          - 'null'
        defined_type_name:
          type:
          - string
          - 'null'
        group_id:
          type:
          - integer
          - 'null'
        url_private_api:
          type: string
          format: uri
        url_public_api:
          type: string
          format: uri
        url_private_html:
          type: string
          format: uri
        url_public_html:
          type: string
          format: uri
        timeline:
          type: object
        resource_title:
          type:
          - string
          - 'null'
        resource_doi:
          type:
          - string
          - 'null'
    File:
      type: object
      properties:
        id:
          type:
          - integer
          - 'null'
        uuid:
          type: string
          format: uuid
        name:
          type: string
        size:
          type: integer
        is_link_only:
          type: boolean
        is_incomplete:
          type: boolean
        download_url:
          type: string
          format: uri
        supplied_md5:
          type:
          - string
          - 'null'
        computed_md5:
          type:
          - string
          - 'null'
    Dataset:
      allOf:
      - $ref: '#/components/schemas/DatasetSummary'
      - type: object
        properties:
          files:
            type: array
            items:
              $ref: '#/components/schemas/File'
          authors:
            type: array
            items:
              $ref: '#/components/schemas/Author'
          custom_fields:
            type: array
          description:
            type: string
          funding:
            type:
            - string
            - 'null'
          funding_list:
            type: array
          version:
            type: integer
          status:
            type: string
          size:
            type: integer
          created_date:
            type:
            - string
            - 'null'
          modified_date:
            type:
            - string
            - 'null'
          is_public:
            type: boolean
          is_confidential:
            type: boolean
          is_metadata_record:
            type: boolean
          license:
            $ref: '#/components/schemas/License'
          tags:
            type: array
            items:
              type: string
          categories:
            type: array
            items:
              $ref: '#/components/schemas/Category'
          references:
            type: array
            items:
              type: string
          citation:
            type: string
          is_embargoed:
            type: boolean
          embargo_date:
            type:
            - string
            - 'null'
          embargo_type:
            type:
            - string
            - 'null'
          figshare_url:
            type: string
            format: uri
    Error:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
    License:
      type: object
      properties:
        value:
          type: integer
        name:
          type: string
        url:
          type: string
          format: uri
        type:
          type: string
          enum:
          - data
          - software
    Category:
      type: object
      properties:
        id:
          type: integer
        uuid:
          type: string
          format: uuid
        title:
          type: string
        parent_id:
          type:
          - integer
          - 'null'
        parent_uuid:
          type:
          - string
          - 'null'
        path:
          type: string
        source_id:
          type:
          - integer
          - 'null'
        taxonomy_id:
          type:
          - integer
          - 'null'
  parameters:
    Uuid:
      name: uuid
      in: path
      required: true
      description: The dataset or collection UUID. On this repository `uuid` supersedes the Figshare numeric `id`.
      schema:
        type: string
        format: uuid
  responses:
    NotFound:
      description: The resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            notFound:
              value:
                message: This resource does not exist.
    MethodNotAllowed:
      description: The HTTP method is not permitted on this path.
      content:
        text/plain:
          schema:
            type: string
          examples:
            postOnly:
              value: 'Acceptable methods: [''POST'']'
  securitySchemes:
    tokenAuth:
      type: http
      scheme: token
      description: '`Authorization: token YOUR_TOKEN_HERE`. Tokens are issued from the depositor dashboard after logging in; there is no OAuth 2.0 flow and no published scope vocabulary.'
x-artifact:
  generated: '2026-08-19'
  method: derived
  source: Derived from live unauthenticated probes of https://data.4tu.nl on 2026-08-19 (every path, parameter, status code and field name in this document was observed in a real response), cross-read against the djehuty API documentation at https://raw.githubusercontent.com/4TUResearchData/djehuty/main/docs/api.md and https://djehuty.4tu.nl/. 4TU.ResearchData publishes no OpenAPI of its own; the djehuty repository tree contains no openapi/swagger file (checked via the GitHub trees API, 575 entries). This is API Evangelist's derivation, not a 4TU artifact.
  x-operator: institution
  x-operator-evidence: data.4tu.nl -> 131.180.169.22, RIPE inetnum 131.180.0.0/16 netname DUNET, org-name "Technische Universiteit Delft". re3data r3d100010216 lists TU Delft Library as a hosting institution alongside the 4TU.Federation.