Thermo Fisher Scientific Measurements API

Sample measurements and spectra.

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/thermo-fisher-scientific-measurements-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

thermo-fisher-scientific-measurements-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Thermo Fisher NanoDrop Ultra Web Authentication Measurements API
  description: The Thermo Scientific NanoDrop Ultra Web API provides RESTful access to instrument control and data retrieval for the NanoDrop Ultra microvolume UV-Vis spectrophotometer and fluorometer. Enables laboratory informatics integration, automated measurement workflows, sample data export, and instrument status monitoring.
  version: 1.0.0
  contact:
    name: Thermo Fisher Scientific
    url: https://www.thermofisher.com/us/en/home/industrial/spectroscopy-elemental-isotope-analysis/molecular-spectroscopy/uv-vis-spectrophotometry/instruments/nanodrop.html
  license:
    name: Proprietary
    url: https://www.thermofisher.com
servers:
- url: http://{instrument-ip}:{port}
  description: NanoDrop Ultra instrument local network API
  variables:
    instrument-ip:
      description: IP address of the NanoDrop Ultra instrument on the local network.
      default: 192.168.1.100
    port:
      description: API port.
      default: '8080'
tags:
- name: Measurements
  description: Sample measurements and spectra.
paths:
  /api/measure:
    post:
      operationId: performMeasurement
      summary: Perform Measurement
      description: Initiates a sample measurement on the NanoDrop Ultra instrument using the specified method. The instrument must have a sample loaded on the pedestal before calling this endpoint.
      tags:
      - Measurements
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementRequest'
      responses:
        '200':
          description: Measurement completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementResult'
        '400':
          description: Invalid measurement request.
        '503':
          description: Instrument busy or not ready.
  /api/measurements:
    get:
      operationId: getMeasurements
      summary: Get Measurements
      description: Retrieves a list of stored measurements from the NanoDrop Ultra database. Supports filtering by date, sample ID, and method.
      tags:
      - Measurements
      parameters:
      - name: from_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter measurements from this date.
      - name: to_date
        in: query
        required: false
        schema:
          type: string
          format: date
        description: Filter measurements to this date.
      - name: method
        in: query
        required: false
        schema:
          type: string
        description: Filter by measurement method name.
      - name: sample_id
        in: query
        required: false
        schema:
          type: string
        description: Filter by sample identifier.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 100
        description: Maximum number of records to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
        description: Pagination offset.
      responses:
        '200':
          description: Measurement list returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementListResponse'
  /api/measurements/{measurementId}:
    get:
      operationId: getMeasurementById
      summary: Get Measurement By ID
      description: Returns the full measurement data including spectrum for a specific measurement.
      tags:
      - Measurements
      parameters:
      - name: measurementId
        in: path
        required: true
        schema:
          type: string
        description: The unique measurement identifier.
      responses:
        '200':
          description: Measurement data returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementResult'
        '404':
          description: Measurement not found.
components:
  schemas:
    MeasurementResult:
      type: object
      properties:
        measurement_id:
          type: string
          description: Unique measurement identifier.
        sample_id:
          type: string
          description: Sample identifier.
        sample_name:
          type: string
          description: Sample display name.
        method:
          type: string
          description: Measurement method used.
        timestamp:
          type: string
          format: date-time
          description: Measurement timestamp.
        operator:
          type: string
          description: Operator who performed the measurement.
        concentration:
          type: number
          description: Calculated concentration (ng/µL or µg/mL depending on method).
        unit:
          type: string
          description: Concentration unit.
        a260:
          type: number
          description: Absorbance at 260 nm.
        a280:
          type: number
          description: Absorbance at 280 nm.
        a260_a280_ratio:
          type: number
          description: A260/A280 purity ratio.
        a260_a230_ratio:
          type: number
          description: A260/A230 purity ratio.
        spectrum:
          type: array
          description: Full UV-Vis absorbance spectrum data points.
          items:
            type: object
            properties:
              wavelength:
                type: number
                description: Wavelength in nm.
              absorbance:
                type: number
                description: Absorbance value.
    MeasurementRequest:
      type: object
      required:
      - method
      properties:
        method:
          type: string
          description: Name of the measurement method to use.
        sample_id:
          type: string
          description: Sample identifier to associate with the measurement.
        sample_name:
          type: string
          description: Sample display name.
        operator:
          type: string
          description: Operator name.
        notes:
          type: string
          description: Optional measurement notes.
    MeasurementListResponse:
      type: object
      properties:
        total:
          type: integer
        measurements:
          type: array
          items:
            $ref: '#/components/schemas/MeasurementResult'