Pipeline API
SeqDesk exposes read-only API endpoints for discovering available study pipelines and order-scoped sequencing utilities, fetching their metadata, and downloading versioned packages. The registry is also the default manifest source used by SeqDesk pipeline installs.
For sequencing-technology endpoints see the Sequencing Technology API.
Base URL
Use your deployment host with /api:
- Public SeqDesk:
https://seqdesk.com/api - Self-hosted:
https://<your-host>/api
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /registry | Pipeline registry index (available pipelines + categories) |
| GET | /registry/{id} | Full metadata for one pipeline |
| GET | /registry/pipelines/{id}/{version}/download | Package payload for one pipeline version |
Usage Examples
1. List available pipelines
curl -s https://seqdesk.com/api/registryResponse shape:
{
"version": "1.0.0",
"lastUpdated": "2026-03-06",
"baseUrl": "https://seqdesk.com/api/registry",
"pipelines": [
{
"id": "fastqc",
"latestVersion": "0.1.0",
"targets": {
"supported": ["order"]
},
"capabilities": {
"requiresLinkedReads": true,
"writesCanonicalReadMetadata": true,
"writesCanonicalReadFiles": false
},
"versions": [
{
"version": "0.1.0",
"downloadUrl": "https://seqdesk.com/api/registry/pipelines/fastqc/0.1.0/download"
}
]
}
]
}2. Fetch one pipeline definition
curl -s https://seqdesk.com/api/registry/magThis returns the full pipeline metadata (description, DAG steps, requirements, features, etc.).
3. Download a specific package version
curl -s https://seqdesk.com/api/registry/pipelines/mag/3.0.0/downloadThis returns the packaged payload (for example manifest.json,
definition.json, parser configs, and templates) used by SeqDesk to install or
run that pipeline version.
Target Metadata
Registry entries may include a targets block describing where a package is
intended to run:
study: pipelines that operate at study scopeorder: pipelines that operate at order scope
Example:
{
"id": "simulate-reads",
"targets": {
"supported": ["order"]
}
}Capability Metadata
Registry entries may also include capabilities to support lightweight catalog
filtering and UI hints in SeqDesk clients.
Current capability flags:
requiresLinkedReadswritesCanonicalReadMetadatawritesCanonicalReadFiles
Source Metadata
Registry entries may include a source block describing how SeqDesk should
install that pipeline:
registry: public package payloadprivateRegistry: private endpoint requiring a key/tokengithub: GitHub repo/ref descriptor import
Example:
{
"id": "metaxpath",
"isPrivate": true,
"source": {
"kind": "github",
"label": "GitHub",
"repository": "hzi-bifo/MetaxPath",
"refDefault": "Nextflow",
"descriptorPath": ".seqdesk/pipelines/metaxpath",
"includeWorkflow": true
}
}Error Responses
/registry/{id} and /registry/pipelines/{id}/{version}/download validate path
parameters and return:
400for invalid IDs/versions404for unknown pipeline/package500for server-side load errors
Caching and CORS
- Pipeline endpoints are served with CDN cache headers (
s-maxage=300,stale-while-revalidate=600). - Browser-accessible cross-origin endpoints include permissive CORS headers
(
Access-Control-Allow-Origin: *):/registry,/registry/{id},/registry/pipelines/{id}/{version}/download.
Install Profile API
Hosted install profiles power the --profile install flow described in
Hosted install profile. The registry is
public; the resolve endpoint is gated by an access code.
| Method | Path | Auth | Purpose |
|---|---|---|---|
| GET | /install-profiles | none | List enabled profiles (cached 300s) |
| GET | /install-profiles/{id} | none | Profile metadata + pre-formatted install command |
| GET | /install-profiles/{id}/resolve | Authorization: Bearer <code> | Resolved profile JSON for installation |
| POST | /install-profiles/{id}/resolve | {"accessCode": "<code>"} body | Same as GET, accepts the code in the body |
Resolve responses set cache-control: no-store and a content-disposition
attachment header — each install pulls the current published version.
List profiles
curl -s https://www.seqdesk.com/api/install-profilesEach entry has id, name, version, minSeqDeskVersion, enabled,
requiresAccessCode, capabilities, and a resolveUrl.
Resolve a profile
curl -H "Authorization: Bearer <code>" \
https://www.seqdesk.com/api/install-profiles/<id>/resolveReturns the full profile JSON with requiredSecrets injected at their declared
paths. See Hosted install profile for the
schema.
Version API
| Method | Path | Purpose |
|---|---|---|
| GET | /version | Latest published SeqDesk release metadata |
| GET | /version?current=<version> | Adds updateAvailable flag relative to the supplied current version |
This endpoint is consumed by the in-app updater. See Automatic Updates for the client-side flow.