openapi: 3.1.0 info: title: Thermo Fisher NanoDrop Ultra Web Authentication 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: Authentication description: Token-based authentication operations. paths: /mobile/login: post: operationId: login summary: Login description: Authenticates a user and returns a session token for subsequent API calls. Token must be included in the Authorization header. tags: - Authentication security: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LoginRequest' responses: '200': description: Login successful. Returns session token. content: application/json: schema: $ref: '#/components/schemas/LoginResponse' '401': description: Invalid credentials. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /mobile/logout: post: operationId: logout summary: Logout description: Invalidates the current session token. tags: - Authentication responses: '200': description: Logout successful. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' '401': description: Unauthorized or token already expired. components: schemas: ErrorResponse: type: object properties: error: type: string message: type: string LoginResponse: type: object properties: token: type: string description: Session token for subsequent API calls. expires: type: string format: date-time description: Token expiration timestamp. username: type: string description: Authenticated username. LoginRequest: type: object required: - username - password properties: username: type: string description: SampleManager username. password: type: string description: SampleManager password. instance: type: string description: SampleManager instance name (if multiple instances). SuccessResponse: type: object properties: success: type: boolean message: type: string