Skip to Content
ReferencePipeline API

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

MethodPathPurpose
GET/registryPipeline registry index (available pipelines + categories)
GET/registry/{id}Full metadata for one pipeline
GET/registry/pipelines/{id}/{version}/downloadPackage payload for one pipeline version

Usage Examples

1. List available pipelines

curl -s https://seqdesk.com/api/registry

Response 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/mag

This 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/download

This 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 scope
  • order: 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:

  • requiresLinkedReads
  • writesCanonicalReadMetadata
  • writesCanonicalReadFiles

Source Metadata

Registry entries may include a source block describing how SeqDesk should install that pipeline:

  • registry: public package payload
  • privateRegistry: private endpoint requiring a key/token
  • github: 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:

  • 400 for invalid IDs/versions
  • 404 for unknown pipeline/package
  • 500 for 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.

MethodPathAuthPurpose
GET/install-profilesnoneList enabled profiles (cached 300s)
GET/install-profiles/{id}noneProfile metadata + pre-formatted install command
GET/install-profiles/{id}/resolveAuthorization: Bearer <code>Resolved profile JSON for installation
POST/install-profiles/{id}/resolve{"accessCode": "<code>"} bodySame 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-profiles

Each 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>/resolve

Returns the full profile JSON with requiredSecrets injected at their declared paths. See Hosted install profile for the schema.

Version API

MethodPathPurpose
GET/versionLatest 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.