Scispot Manifests API

Physical container management including plates, boxes, and racks

OpenAPI Specification

scispot-manifests-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Scispot ELN Manifests API
  description: The Scispot REST API provides programmatic access to all features of the Scispot laboratory data platform. Scispot is an API-first Electronic Lab Notebook (ELN) and Laboratory Information Management System (LIMS) designed for modern life science and biotech labs. The API enables programmatic management of Labsheets (structured LIMS data), ELN protocols and experiments, Manifests (plates, boxes, racks), and biological Sequences. Every GUI action in Scispot is available through the API, supporting automation, computational biology workflows, instrument integration, and data pipeline development. Authenticated via personal API tokens with role-based access control (RBAC).
  version: 1.0.0
  contact:
    name: Scispot Developer Support
    url: https://docs.scispot.com/
  termsOfService: https://www.scispot.com/terms
servers:
- url: https://api.scispot.com/v1
  description: Scispot Production API
security:
- ApiKeyAuth: []
tags:
- name: Manifests
  description: Physical container management including plates, boxes, and racks
paths:
  /manifests:
    get:
      operationId: listManifests
      summary: List Manifests
      description: Retrieve a list of all Manifests in the workspace. Manifests represent physical containers such as plates, boxes, racks, and other storage units used in laboratory workflows.
      tags:
      - Manifests
      parameters:
      - name: type
        in: query
        description: Filter by container type (plate, box, rack)
        required: false
        schema:
          type: string
          enum:
          - plate
          - box
          - rack
      - name: page
        in: query
        description: Page number for pagination
        required: false
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        description: Number of manifests per page
        required: false
        schema:
          type: integer
          maximum: 100
          default: 20
      responses:
        '200':
          description: List of manifests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManifestListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createManifest
      summary: Create Manifest
      description: Create a new Manifest (plate, box, rack, or other container) in the workspace. Manifests track the physical location and organization of samples and materials in the lab.
      tags:
      - Manifests
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManifestInput'
      responses:
        '201':
          description: Manifest created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Manifest'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /manifests/{manifestId}:
    get:
      operationId: getManifest
      summary: Get Manifest
      description: Retrieve a single Manifest by its unique identifier.
      tags:
      - Manifests
      parameters:
      - name: manifestId
        in: path
        description: Unique identifier of the Manifest
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Manifest details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Manifest'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: API key missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters or body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ManifestListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Manifest'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
    Manifest:
      type: object
      properties:
        id:
          type: string
          description: Unique manifest identifier
        name:
          type: string
          description: Manifest name
        type:
          type: string
          enum:
          - plate
          - box
          - rack
          - other
          description: Container type
        barcode:
          type: string
          description: Physical barcode for this container
        dimensions:
          type: object
          description: Physical dimensions (rows, columns for plates)
          properties:
            rows:
              type: integer
            columns:
              type: integer
        items:
          type: array
          description: Contents of the container
          items:
            type: object
            properties:
              position:
                type: string
              sampleId:
                type: string
              barcode:
                type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    ManifestInput:
      type: object
      properties:
        name:
          type: string
          description: Manifest name
        type:
          type: string
          enum:
          - plate
          - box
          - rack
          - other
        barcode:
          type: string
          description: Optional physical barcode
        dimensions:
          type: object
          properties:
            rows:
              type: integer
            columns:
              type: integer
      required:
      - name
      - type
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error type
        message:
          type: string
          description: Human-readable error message
        code:
          type: integer
          description: Error code
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apiKey
      description: Personal API token generated from Scispot Account Settings > Personal Tokens. All API requests require this header.