Scispot Labsheets API
LIMS-style structured data tables for registries, sample tracking, and assay data
LIMS-style structured data tables for registries, sample tracking, and assay data
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/scispot:scispot-labsheets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Scispot Labsheets API
description: The Scispot REST API provides programmatic access to all features of the Scispot laboratory data platform.
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: Labsheets
description: LIMS-style structured data tables for registries, sample tracking, and assay data
paths:
/labsheets:
get:
operationId: listLabsheets
summary: List Labsheets
description: Retrieve a list of all Labsheets in the workspace. Labsheets are structured data tables that serve as the LIMS backbone of Scispot, used for registries, sample tracking, assay results, and inventory.
tags:
- Labsheets
parameters:
- name: page
in: query
description: Page number for pagination
required: false
schema:
type: integer
minimum: 1
default: 1
- name: limit
in: query
description: Number of results per page
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 20
responses:
'200':
description: List of labsheets
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/labsheets/{labsheetId}/rows:
get:
operationId: getLabsheetRows
summary: Get Labsheet Rows
description: Retrieve all rows from a specific Labsheet. Returns structured data records with all column values for each row in the labsheet.
tags:
- Labsheets
parameters:
- name: labsheetId
in: path
description: Unique identifier of the Labsheet
required: true
schema:
type: string
- name: page
in: query
description: Page number for pagination
required: false
schema:
type: integer
default: 1
- name: limit
in: query
description: Number of rows per page
required: false
schema:
type: integer
maximum: 100
default: 50
responses:
'200':
description: Labsheet rows
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRowsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
post:
operationId: addLabsheetRow
summary: Add Labsheet Row
description: Add a new row to a Labsheet. Accepts column values as key-value pairs matching the Labsheet schema. Supports barcode assignment and metadata attachment for sample tracking workflows.
tags:
- Labsheets
parameters:
- name: labsheetId
in: path
description: Unique identifier of the Labsheet
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRowInput'
responses:
'201':
description: Row added successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRow'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/labsheets/{labsheetId}/rows/{rowId}:
get:
operationId: getLabsheetRow
summary: Get Labsheet Row
description: Retrieve a single row from a Labsheet by its unique row identifier.
tags:
- Labsheets
parameters:
- name: labsheetId
in: path
description: Unique identifier of the Labsheet
required: true
schema:
type: string
- name: rowId
in: path
description: Unique identifier of the row
required: true
schema:
type: string
responses:
'200':
description: Labsheet row
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRow'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateLabsheetRow
summary: Update Labsheet Row
description: Update an existing row in a Labsheet. Accepts updated column values as key-value pairs. Only specified fields are updated.
tags:
- Labsheets
parameters:
- name: labsheetId
in: path
description: Unique identifier of the Labsheet
required: true
schema:
type: string
- name: rowId
in: path
description: Unique identifier of the row
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRowInput'
responses:
'200':
description: Row updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/LabsheetRow'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteLabsheetRow
summary: Delete Labsheet Row
description: Delete a row from a Labsheet by its unique identifier.
tags:
- Labsheets
parameters:
- name: labsheetId
in: path
description: Unique identifier of the Labsheet
required: true
schema:
type: string
- name: rowId
in: path
description: Unique identifier of the row
required: true
schema:
type: string
responses:
'204':
description: Row deleted successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
ErrorResponse:
type: object
properties:
error:
type: string
description: Error type
message:
type: string
description: Human-readable error message
code:
type: integer
description: Error code
LabsheetRow:
type: object
properties:
id:
type: string
description: Unique row identifier
labsheetId:
type: string
description: Parent labsheet identifier
barcode:
type: string
description: Barcode associated with this row
data:
type: object
description: Column values as key-value pairs
additionalProperties: true
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
LabsheetListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Labsheet'
total:
type: integer
description: Total number of labsheets
page:
type: integer
limit:
type: integer
Labsheet:
type: object
properties:
id:
type: string
description: Unique labsheet identifier
name:
type: string
description: Name of the labsheet
description:
type: string
description: Description of the labsheet purpose
columns:
type: array
description: Column definitions for the labsheet
items:
$ref: '#/components/schemas/LabsheetColumn'
rowCount:
type: integer
description: Number of rows in the labsheet
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
LabsheetRowInput:
type: object
description: Input for creating or updating a labsheet row
properties:
barcode:
type: string
description: Optional barcode for the row
data:
type: object
description: Column values as key-value pairs
additionalProperties: true
required:
- data
LabsheetRowsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/LabsheetRow'
total:
type: integer
page:
type: integer
limit:
type: integer
LabsheetColumn:
type: object
properties:
name:
type: string
description: Column name
type:
type: string
enum:
- text
- number
- date
- barcode
- lookup
- file
- formula
description: Column data type
required:
type: boolean
description: Whether this column is required
responses:
Unauthorized:
description: API key missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Requested resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Invalid request parameters or body
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
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.