> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scispot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Labsheet

> NOTE:

- Labsheet names must be unique, non-empty, and have at most 30 characters

- Every labsheet must have exactly one ID type column, refer to the [API Overview](https://labsheets.scispot.io/api-reference/overview) for more information on ID type columns.

- Column names must be unique within the same labsheet, non-empty, and have at most 30 characters

- Labsheets can be created within a labsheet folder by specifying the name of folder

- List of supported magic column types: "LABSPACES", "LAST_MODIFIED", "EXISTING_MANIFEST", "PROTOCOLS", "EXPERIMENTS". Additonal Note: Names are ignored for these columns as they have already have a set name

Column objects require name/type for normal columns; LIST, STATUS, and UNIT columns require references. Supported column types can be found in the [API Overview](https://labsheets.scispot.io/api-reference/overview).



## OpenAPI

````yaml /api-docs.yaml post /labsheets/create
openapi: 3.0.0
info:
  title: Scispot's API Documentation
  description: >-
    ### [Welcome! Feel Free To Visit Scispot.com](https://www.scispot.com)


    #### Overview


    This is a documentation listing API calls for the following Scispot
    applications:


    1. Labsheets (LIMS)


    2. ELN


    3. Manifests (plates, boxes, racks, etc.)


    4. Sequences



    ## [Getting Started](https://labsheets.scispot.io/#getting-started)


    ### [Create a new API Key in account
    settings](https://labsheets.scispot.io/)


    - Go to [Scispot](https://labsheets.scispot.io)


    - Click on the "Account" button in the navigation bar on the bottom left
    corner of your screen


    - Click "Personal Tokens" on the left side of the pop-up modal


    - Click "Generate New Token"


    - Name your token, select token access, and click "Generate"


    - Copy the API Key and save it somewhere safe - this token cannot be
    retrieved once it is generated


    - This token will be used as "apiKey" in all API requests
  version: 1.0.0
servers:
  - url: https://cloudlab.scispot.io
    description: Scispot Cloud Lab
security:
  - bearerAuth: []
tags:
  - name: Scispot API
  - name: Scispot API - LABSHEETS (LIMS) API
    description: >-
      #### Overview


      The following API calls are for the manipulation of Labsheets data.


      #### Terminology


      - **Labsheet** - A labsheet is a table that can be used to store and
      organize data. Labsheets can be created or manipulated in Scispot via GUI
      or API.


      - **Uuid** - Row uuids are unique identifiers for each labsheet row used
      in request and response bodies. Row uuids can be found using the Get Row
      Data endpoint and used in other endpoint requests to manipulate specific
      rows.


      - **ID** - IDs are user-defined values that can be used to identify rows
      in a labsheet. Create row IDs in labsheets by adding a column with type
      "ID" to your labsheet. The Update Row Data By ID Column endpoint uses IDs
      to update rows in a labsheet.


      - **Column Data Types** - These are data types set for each column in a
      labsheet and can be viewed in a labsheet's manage view menu, under the
      columns tab.
  - name: Scispot API - ELN API
    description: >-
      #### Overview


      The following API calls are for the manipulation of ELN data.


      #### Terminology


      - **Labspace** - "Labspace" is analogous to a directory or workspace. A
      labspace can contain folders,experiments, protocols and/or documentation
      pages. Labspaces can be created and manipulated through via GUI or API.

      - **Folder** - "Folder" is similar to a traditional folder. It allows
      users to organize their data inside different "Labspaces".

      - **Protocol** - A protocol is a base object used to store and organize
      protocol data. It is analogous to a page in a traditional laboratory
      record.

      - **Experiment** - An experiment is a base object used to store and
      organize experiment data and related protocols. It is also analogous to a
      page in a traditional laboratory record.

      - **Documentation** - A documentation page is a base object analogous to a
      simple note-taking page.
  - name: Scispot API - ELN API - Create
  - name: Scispot API - ELN API - Update
  - name: Scispot API - ELN API - Find
  - name: Scispot API - ELN API - List
  - name: Scispot API - ELN API - Delete
  - name: Scispot API - ELN API - Permissions (Super Admin Only)
    description: >-
      ### Permissions Endpoint


      These endpoint allows you to list, add, remove useres from a private
      folder.


      #### **Notes**:


      - The owner of the API token must have Super Admin permissions


      - These endpoints only work for folders that are already privated
  - name: Scispot API - MANIFESTS (PLATES, BOXES, RACKS) API
    description: |-
      #### Overview

      The following API calls are for the manipulation of manifest data.

      #### Terminology

      - **Manifest** - A visual representation of a well plate.
  - name: Scispot API - SEQUENCE API
    description: |-
      #### Overview

      The following API calls are for the manipulation of DNA sequence data.
  - name: Scispot API - FILES API
  - name: Scispot API - LOCATIONS API
  - name: Scispot API - LABFLOWS API
  - name: Scispot API - WEBHOOK API
paths:
  /labsheets/create:
    post:
      tags:
        - Scispot API - LABSHEETS (LIMS) API
      summary: Create Labsheet
      description: >-
        NOTE:


        - Labsheet names must be unique, non-empty, and have at most 30
        characters


        - Every labsheet must have exactly one ID type column, refer to the [API
        Overview](https://labsheets.scispot.io/api-reference/overview) for more
        information on ID type columns.


        - Column names must be unique within the same labsheet, non-empty, and
        have at most 30 characters


        - Labsheets can be created within a labsheet folder by specifying the
        name of folder


        - List of supported magic column types: "LABSPACES", "LAST_MODIFIED",
        "EXISTING_MANIFEST", "PROTOCOLS", "EXPERIMENTS". Additonal Note: Names
        are ignored for these columns as they have already have a set name


        Column objects require name/type for normal columns; LIST, STATUS, and
        UNIT columns require references. Supported column types can be found in
        the [API Overview](https://labsheets.scispot.io/api-reference/overview).
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the labsheet (required)
                columns:
                  type: array
                  items:
                    type: object
                    description: The list of columns to create in the labsheet (required)
                    properties:
                      name:
                        type: string
                        description: The name of the column (required)
                      type:
                        type: string
                        description: The type of the column (required)
                      position:
                        type: string
                        description: The position of the column in the labsheet
                      formula:
                        type: string
                        description: >-
                          The formula for the column (only for TEXT and NUMBER
                          columns)
                      references:
                        type: array
                        description: >-
                          The references for the column (only for LIST, STATUS,
                          and UNIT columns)
                        items:
                          type: string
                      labsheet:
                        type: string
                        description: >-
                          The labsheet to link to (only for LOOKUP_REFERENCE
                          columns)
                      linkColumn:
                        type: string
                        description: >-
                          The column name of the LOOKUP_REFERENCE column to link
                          to in this labsheet
                      lookupColumnName:
                        type: string
                        description: >-
                          The column name of the column to lookup in the linked
                          labsheet determined by the linkColumn
                      prefix:
                        type: string
                        description: >-
                          The prefix for the column (only for ID columns set to
                          use autogenerated IDs)
                      numberOfNumPlaces:
                        type: number
                        description: >-
                          The number of decimal places for the column (only for
                          NUMBER columns)
                    additionalProperties: true
                folder:
                  type: string
                  description: The folder to create the labsheet in
                waitRefresh:
                  type: boolean
                  description: >-
                    Whether to wait for the database index to be refreshed after
                    the labsheet is created. Used to ensure the labsheet is
                    available for reference by the next API call. May add 1-2
                    seconds of latency to the request.
              required:
                - name
                - columns
              additionalProperties: true
            example:
              name: Sample Manager
              columns:
                - name: Sample ID
                  type: ID_BARCODE
                  position: 0
                  prefix: SMPL
                - name: Sample Name
                  type: TEXT
                  position: 1
                - name: Sample
                  type: NUMBER
                  position: 2
                - name: Sample Type
                  type: LIST
                  position: 3
                  references:
                    - DNA
                    - RNA
                    - Protein
                    - Cell Culture
                    - Other
                - name: Sample Status
                  type: STATUS
                  position: 4
                  references:
                    - Pending
                    - In Progress
                    - Completed
                    - On Hold
                    - Cancelled
                - name: Sample Quantity
                  type: QUANTITY
                  position: 5
                - name: Sample Units
                  type: UNIT
                  position: 6
                  references:
                    - mg
                    - g
                    - kg
                    - ml
                - name: Test Results
                  type: LOOKUP_REFERENCE
                  position: 7
                  labsheet: Test Results
                - name: Test Run ID
                  type: LOOKUP
                  position: 8
                  linkColumn: Test Results
                  lookupColumnName: Test Run ID
              folder: Samples Folder
              waitRefresh: true
        required: true
      responses:
        '201':
          description: The Labsheet was successfully created.
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    description: The name of the labsheet that was created
                  uuid:
                    type: string
                    description: The UUID of the labsheet that was created
                  path:
                    type: string
                    description: The path of the labsheet that was created
                  success:
                    type: boolean
                    description: Whether the request was successful
                additionalProperties: true
              example:
                name: Samples
                uuid: <uuid>
                success: true
        '401':
          description: Invalid Authentication Token
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Invalid Authentication Token
        '403':
          description: Missing Authentication Token
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Missing Authentication Token
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Not found
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Conflict
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Validation error
        '500':
          description: Operation failed, may be a network issue or a server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                additionalProperties: true
              example:
                success: false
                message: Operation failed
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: UUID
      description: Personal access token from Scispot Account → Personal Tokens

````