University of Chicago Gen3 indexd — DOS API

Data Object Service Retrieval Endpoints

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/university-of-chicago-dos-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-chicago-dos-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Gen3 indexd OpenAPI Specification — DOS API
  version: 0.1.0
  description: >-
    indexd is the Gen3 data indexing and GUID service, authored by the University of Chicago Center for Translational Data Science.
    Code: https://github.com/uc-cdis/indexd
  termsOfService: http://cdis.uchicago.edu/terms/
  contact:
    email: cdis@uchicago.edu
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://gen3.datacommons.io/
  description: >-
    University of Chicago Center for Translational Data Science (CTDS) reference Gen3 data
    commons. Gen3 is deployable software authored by CTDS (github.com/uc-cdis), so the upstream
    specification ships a placeholder host; this is the base URL of the deployment CTDS itself
    operates. The datacommons.io domain is registered to CDIS, University of Chicago.
  x-operator: institution
  x-verified: '2026-08-19'
  x-verified-evidence: https://gen3.datacommons.io/.well-known/openid-configuration
tags:
- name: DOS
  description: Data Object Service Retrieval Endpoints
paths:
  /ga4gh/dos/v1/dataobjects:
    get:
      summary: List the Data Objects
      operationId: ListDataObjects
      responses:
        '200':
          description: The Data Objects were listed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDataObjectsResponse'
        '400':
          description: The request is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The request is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The requester is not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
      - name: alias
        in: query
        required: false
        description: If provided will only return Data Objects with the given alias.
        schema:
          type: string
      - name: url
        in: query
        required: false
        description: 'If provided will return only Data Objects with a that URL matches

          this string.'
        schema:
          type: string
      - name: checksum
        in: query
        required: false
        description: The hexlified checksum that one would like to match on.
        schema:
          type: string
      - name: checksum_type
        in: query
        required: false
        description: 'If provided will restrict responses to those that match the provided

          type.

          possible values:

          md5                # most blob stores provide a checksum using this

          multipart-md5      # multipart uploads provide a specialized tag in S3

          sha256

          sha512'
        schema:
          type: string
      - name: page_size
        in: query
        required: false
        description: 'Specifies the maximum number of results to return in a single page.

          If unspecified, a system default will be used.'
        schema:
          type: integer
          format: int32
      - name: page_token
        in: query
        required: false
        description: 'The continuation token, which is used to page through large result sets.

          To get the next page of results, set this parameter to the value of

          next_page_token from the previous response.'
        schema:
          type: string
      tags:
      - DOS
  /ga4gh/dos/v1/dataobjects/{GUID}:
    get:
      summary: Retrieve a Data Object
      operationId: GetDataObject
      responses:
        '200':
          description: The Data Object was found successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDataObjectResponse'
        '400':
          description: The request is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: The request is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The requested Data Object wasn't found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The requester is not authorized to perform this action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: An unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      parameters:
      - name: GUID
        in: path
        required: true
        schema:
          type: string
      tags:
      - DOS
components:
  schemas:
    SystemMetadata:
      type: object
      additionalProperties: true
      description: 'OPTIONAL

        These values are reported by the underlying object store.

        A set of key-value pairs that represent system metadata about the object.'
    ListDataObjectsResponse:
      type: object
      properties:
        data_objects:
          type: array
          items:
            $ref: '#/components/schemas/DataObject'
          description: The list of Data Objects.
        next_page_token:
          type: string
          description: 'The continuation token, which is used to page through large result sets.

            Provide this value in a subsequent request to return the next page of

            results. This field will be empty if there aren''t any additional results.'
      description: 'A list of Data Objects matching the requested parameters, and a paging

        token, that can be used to retrieve more results.'
    URL:
      type: object
      required:
      - url
      properties:
        url:
          type: string
          description: A URL that can be used to access the file.
        system_metadata:
          $ref: '#/components/schemas/SystemMetadata'
        user_metadata:
          $ref: '#/components/schemas/UserMetadata'
    UserMetadata:
      type: object
      additionalProperties: true
      description: 'OPTIONAL

        A set of key-value pairs that represent metadata provided by the uploader.'
    Checksum:
      type: object
      required:
      - checksum
      properties:
        checksum:
          type: string
          description: The hex-string encoded checksum for the Data.
        type:
          type: string
          description: 'The digest method used to create the checksum. If left unspecified md5

            will be assumed.

            possible values:

            md5                # most blob stores provide a checksum using this

            multipart-md5      # multipart uploads provide a specialized tag in S3

            sha256

            sha512'
    ErrorResponse:
      description: An object that can optionally include information about the error.
      type: object
      properties:
        msg:
          type: string
          description: A detailed error message.
        status_code:
          type: integer
          description: The integer representing the HTTP status code (e.g. 200, 404).
    DataObject:
      type: object
      required:
      - id
      - size
      - created
      - checksums
      properties:
        id:
          type: string
          description: An identifier unique to this Data Object.
        name:
          type: string
          description: A string that can be optionally used to name a Data Object.
        size:
          type: string
          format: int64
          description: The computed size in bytes.
        created:
          type: string
          format: date-time
          description: Timestamp of object creation in RFC3339.
        updated:
          type: string
          format: date-time
          description: 'Timestamp of update in RFC3339, identical to create timestamp in systems

            that do not support updates.'
        version:
          type: string
          description: A string representing a version.
        mime_type:
          type: string
          description: 'A string providing the mime-type of the Data Object.

            For example, "application/json".'
        checksums:
          type: array
          items:
            $ref: '#/components/schemas/Checksum'
          description: The checksum of the Data Object. At least one checksum must be provided.
        urls:
          type: array
          items:
            $ref: '#/components/schemas/URL'
          description: The list of URLs that can be used to access the Data Object.
        description:
          type: string
          description: A human readable description of the contents of the Data Object.
        aliases:
          type: array
          items:
            type: string
          description: 'A list of strings that can be used to find this Data Object.

            These aliases can be used to represent the Data Object''s location in

            a directory (e.g. "bucket/folder/file.name") to make Data Objects

            more discoverable. They might also be used to represent'
    GetDataObjectResponse:
      type: object
      required:
      - data_object
      properties:
        data_object:
          $ref: '#/components/schemas/DataObject'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /oauth/authorize
          tokenUrl: /oauth/token
          scopes:
            user: generic user access