Back to top

Duke Data Service API Summary

The Duke Data Service (DDS) API allows Duke researchers to store, organize, retrieve, share and generate provenance for data.

This the documentation for the Data Service API. Key focuses are on API endpoints that enhance usability for “shallow end of the pool” users, endpoints that support the needs of investigators for managing their research groups, endpoints that accommodate shared resource and core facility needs, endpoints that support SOM administration of data resources, and endpoints that facilitate reproducible scientific workflows. There are tensions to resolve to meet these needs, and we should consider whether the API might be broken up into multiple APIs, whether some business logic be pushed to the users, etc.

Adhere as well as possible to the Heroku API Design Best Practices: requiring secure TLS connections, versioning in the accepts header, supporting Etags, including a Request-id in each response header, among others.

API Change Log and Basics

  • Contains change log and general usage details (i.e. authentication, standard errors, pagination, etc.)

Users, Software Agents, and Auth Providers

  • Contains endpoints for Current User, Users, Software Agents, Authentication Providers


  • Contains endpoints for Authorization Roles, System Permissions


  • Contains endpoints for Projects, Project Member Permissions, Project Affiliates

Folders and Files

  • Contains endpoints for Folders, Uploads, Files, File Versions, Browse Project/Folder Tree (Search Children), Storage Providers


  • Contains endpoints for viewing, restoring, and purging Folders, Files, and File Versions in the trash bin.


  • Contains endpoints for Provenance Activities, Provenance Relations, Search Provenance Graph


  • Contains endpoints for Tags and Metadata (Key/Value Pairs)
  • Contains endpoints for Searching DDS content

Core Facility Workflow

  • Contains endpoints for Project Transfers

Generated by aglio on 24 Apr 2018