Sequencing Technology API
SeqDesk maintains a curated registry of supported sequencing technologies: platforms, devices, flow cells, kits, barcode metadata, and software.
There are two related but different use cases:
- Query your local SeqDesk instance for data that has already been synced and filtered for users
- Provide a custom remote registry endpoint that SeqDesk can consume from the admin UI
Base URL
- Public:
https://seqdesk.com/api - Self-hosted:
https://<your-host>/api
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /registry/sequencing-tech | Full registry dataset suitable as a sync source |
| GET | /sequencing-tech | Local available-data view used by the order form |
Local Available Data
On a SeqDesk instance, GET /api/sequencing-tech returns the currently stored
configuration after local filtering:
- technologies and devices with
available: true - technologies and devices not marked
comingSoon - available flow cells, kits, and software
- barcode schemes and barcode sets as stored locally
curl -s https://<your-host>/api/sequencing-techResponse shape:
{
"technologies": [
{
"id": "ont-minion",
"name": "MinION",
"manufacturer": "Oxford Nanopore",
"shortDescription": "Portable nanopore sequencing platform",
"specs": [{ "label": "Read length", "value": "real-time" }],
"pros": [{ "text": "Portable" }],
"cons": [{ "text": "Lower per-run throughput than PromethION" }],
"bestFor": ["Rapid turnaround"],
"available": true,
"order": 10
}
],
"devices": [
{
"id": "ont-minion-mk1d",
"platformId": "ont-minion",
"name": "MinION Mk1D",
"manufacturer": "Oxford Nanopore",
"productOverview": "Portable nanopore sequencer",
"shortDescription": "Portable nanopore sequencing device",
"specs": [],
"compatibleFlowCells": ["flo-min114"],
"compatibleKits": ["sqk-lsk114"],
"compatibleSoftware": ["minknow"],
"available": true,
"order": 10
}
],
"flowCells": [],
"kits": [],
"software": [],
"barcodeSchemes": [],
"barcodeSets": []
}Field Reference
| Field | Type | Description |
|---|---|---|
technologies | array | Available platform definitions |
devices | array | Available devices linked by platformId |
flowCells | array | Available flow cells |
kits | array | Available kits |
software | array | Available software |
barcodeSchemes | array | Optional barcode scheme metadata |
barcodeSets | array | Optional barcode-set metadata |
Full Registry / Sync Source
curl -s https://seqdesk.com/api/registry/sequencing-techThis endpoint returns the full registry dataset and is the same contract that SeqDesk accepts when you configure a custom sync URL in Admin → Sequencing Technology.
SeqDesk accepts either:
{
"config": {
"version": 6,
"technologies": []
}
}or the raw config object directly.
Response shape:
{
"version": 6,
"technologies": [],
"devices": [],
"flowCells": [],
"kits": [],
"software": [],
"barcodeSchemes": [],
"barcodeSets": []
}Required Fields
| Field | Type | Description |
|---|---|---|
version | integer | Registry version used for update detection |
technologies | array | Platform definitions; this is the only required collection |
Common Collections
| Field | Type | Notes |
|---|---|---|
devices | array | Device entries linked to a platform with platformId |
flowCells | array | Flow cells linked from devices[].compatibleFlowCells |
kits | array | Kits linked from devices[].compatibleKits |
software | array | Software linked from devices[].compatibleSoftware |
barcodeSchemes | array | Optional barcode scheme metadata |
barcodeSets | array | Optional barcode set metadata |
Important Object Fields
Each platform in technologies[] should include:
| Field | Type | Description |
|---|---|---|
id | string | Stable unique identifier |
name | string | Display name |
manufacturer | string | Vendor or platform owner |
shortDescription | string | Short summary used in UI |
specs | array | Technical specs as { label, value, unit? } |
pros | array | Benefit bullets as { text, tooltip? } |
cons | array | Limitation bullets as { text, tooltip? } |
bestFor | array | Use-case labels |
available | boolean | Local instances can still override this |
order | integer | Display order |
Each device in devices[] should include:
| Field | Type | Description |
|---|---|---|
id | string | Stable unique identifier |
platformId | string | Must match a technologies[].id |
name | string | Display name |
manufacturer | string | Vendor |
productOverview | string | Longer description |
shortDescription | string | Short summary |
specs | array | Technical specs |
compatibleFlowCells | array | Flow-cell IDs |
compatibleKits | array | Kit IDs |
compatibleSoftware | array | Software IDs |
available | boolean | Whether the item should be selectable by default |
order | integer | Display order |
Caching and CORS
- The public
seqdesk.comendpoints use CDN caching:s-maxage=300, stale-while-revalidate=600. - Custom registry sync in the app is a simple server-side
GETwithAccept: application/json. - SeqDesk does not send authentication headers to a custom registry URL.
Update Detection and Merging
When SeqDesk checks a custom registry for updates:
- It compares the remote
versionagainst the localversion. - It also treats newly introduced IDs as updates, even if the version was not bumped.
- Existing items are merged by
id. - Items with
localOverrides: truekeep their local values. - For items without local overrides, SeqDesk still preserves the local
availableflag.
Error Responses
If a local instance cannot load or fetch sequencing technology data, the API
returns 500:
{ "error": "Failed to fetch technologies" }