California Institute of Technology Records API

Published research data records, their metadata, files and DOIs.

Operations 2

GET /records Search published records #
GET /records/{id} Retrieve a single record #

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/caltech-records-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

caltech-records-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CaltechDATA REST Records API
  version: 1.0.0
  summary: Public read API for CaltechDATA, the Caltech institutional research data repository.
  description: CaltechDATA (https://data.caltech.edu) is the California Institute of Technology's institutional research data repository, operated by the Caltech Library on the institution's own `caltech.edu` domain. The repository software is InvenioRDM, an open-source platform (CERN/InvenioRDM community) that Caltech Library self-hosts — it is NOT a hosted vendor tenancy, so the operator of this surface is the institution. This document is DERIVED by API Evangelist from live, unauthenticated probes of the public endpoints; Caltech does not publish an OpenAPI description of its own. Only operations actually observed returning data are described here.
  contact:
    name: Caltech Library
    url: https://library.caltech.edu/
  license:
    name: Repository terms vary per record; see each record's `access` and `rights` metadata
    url: https://data.caltech.edu/
servers:
- url: https://data.caltech.edu/api
  description: CaltechDATA production API (verified live 2026-08-19)
tags:
- name: Records
  description: Published research data records, their metadata, files and DOIs.
paths:
  /records:
    get:
      operationId: searchRecords
      summary: Search published records
      description: Returns a paged hit list of published CaltechDATA records. Verified live 2026-08-19 returning application/json with populated `hits.hits[]`.
      tags:
      - Records
      parameters:
      - name: q
        in: query
        description: Search query string.
        required: false
        schema:
          type: string
      - name: size
        in: query
        description: Number of records per page.
        required: false
        schema:
          type: integer
          minimum: 1
          default: 10
      - name: page
        in: query
        description: Page number, 1-indexed.
        required: false
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: sort
        in: query
        description: Sort order (e.g. newest, bestmatch).
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A page of matching records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordSearchResult'
  /records/{id}:
    get:
      operationId: getRecord
      summary: Retrieve a single record
      description: Returns one published record by its CaltechDATA persistent identifier. Verified live 2026-08-19 (200) and verified 404 behaviour on an unknown id.
      tags:
      - Records
      parameters:
      - name: id
        in: path
        required: true
        description: CaltechDATA record identifier, e.g. `je5p4-zyb48`.
        schema:
          type: string
      responses:
        '200':
          description: The record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '404':
          description: No record with that persistent identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Record:
      type: object
      description: A published CaltechDATA record, in InvenioRDM record shape.
      properties:
        id:
          type: string
        created:
          type: string
          format: date-time
        updated:
          type: string
          format: date-time
        revision_id:
          type: integer
        is_published:
          type: boolean
        is_draft:
          type: boolean
        status:
          type: string
        pids:
          $ref: '#/components/schemas/PersistentIdentifiers'
        metadata:
          $ref: '#/components/schemas/RecordMetadata'
        access:
          type: object
        files:
          type: object
        media_files:
          type: object
        custom_fields:
          type: object
        parent:
          type: object
        versions:
          type: object
        stats:
          type: object
        links:
          type: object
          additionalProperties:
            type: string
    RecordMetadata:
      type: object
      properties:
        title:
          type: string
        publication_date:
          type: string
        resource_type:
          type: object
        description:
          type: string
        creators:
          type: array
          items:
            $ref: '#/components/schemas/Creator'
        rights:
          type: array
          items:
            type: object
    Creator:
      type: object
      properties:
        person_or_org:
          type: object
          properties:
            type:
              type: string
              examples:
              - personal
            name:
              type: string
            given_name:
              type: string
            family_name:
              type: string
            identifiers:
              type: array
              description: 'Contributor identifiers. ORCID iDs are carried with `scheme: orcid`, observed live in CaltechDATA records.'
              items:
                type: object
                properties:
                  identifier:
                    type: string
                    examples:
                    - 0000-0002-5590-9620
                  scheme:
                    type: string
                    examples:
                    - orcid
        affiliations:
          type: array
          items:
            type: object
    RecordSearchResult:
      type: object
      properties:
        hits:
          type: object
          properties:
            hits:
              type: array
              items:
                $ref: '#/components/schemas/Record'
            total:
              type: integer
        links:
          type: object
          additionalProperties:
            type: string
            format: uri
        sortBy:
          type: string
    PersistentIdentifiers:
      type: object
      description: DOI and OAI identifiers. CaltechDATA mints DOIs through DataCite under its own prefix 10.22002 — `pids.doi.provider` is observed as `datacite`.
      properties:
        doi:
          type: object
          properties:
            identifier:
              type: string
              examples:
              - 10.22002/je5p4-zyb48
            provider:
              type: string
              examples:
              - datacite
            client:
              type: string
              examples:
              - datacite
        oai:
          type: object
          properties:
            identifier:
              type: string
              examples:
              - oai:data.caltech.edu:je5p4-zyb48
            provider:
              type: string
              examples:
              - oai
    Error:
      type: object
      description: Observed error body shape, verified on a 404.
      properties:
        status:
          type: integer
          examples:
          - 404
        message:
          type: string
          examples:
          - The persistent identifier does not exist.
x-operator: institution
x-operator-rationale: 'Host data.caltech.edu is under the institution''s own registrable domain caltech.edu. The repository software is open source (InvenioRDM) and self-hosted by Caltech Library, not an account on a vendor''s shared platform. Compare a Figshare tenancy, which would be x-operator: tenant.'
x-provenance:
  generated: '2026-08-19'
  method: derived
  derived-from: live unauthenticated HTTP probes, 2026-08-19
  source:
  - https://data.caltech.edu/api/records?size=1
  - https://data.caltech.edu/api/records/je5p4-zyb48
  - https://caltechlibrary.github.io/caltechdata_api/
  note: Caltech publishes no OpenAPI for this surface. This description is API Evangelist's observation of the live API, not a Caltech-authored contract, and must not be credited to Caltech as a published specification.