FlowDSL
Studio
Reference

Node Registry API Reference

REST API reference for the repo.flowdsl.com node registry.

The node registry at repo.flowdsl.com provides a REST API for publishing and discovering FlowDSL nodes. The registry is currently in development — the API design below reflects the planned v1 surface.

The Node Registry is coming soon. This page documents the planned API for early adopters building tooling.

Base URL

text
https://repo.flowdsl.com/api/v1

Authentication

Authenticated endpoints require a bearer token:

shell
Authorization: Bearer <your-api-token>

Obtain a token at flowdsl.com/settings/tokens.

Endpoints

GET /nodes

List all published nodes. Supports pagination and filtering.

Query parameters:

ParameterTypeDescription
qstringFull-text search query
tagstringFilter by tag (repeatable)
runtimestringFilter by runtime: go, python, javascript
pageintegerPage number (default: 1)
perPageintegerResults per page (default: 20, max: 100)

Example:

shell
curl https://repo.flowdsl.com/api/v1/nodes?q=llm+classification&tag=email

Response:

json
{
  "nodes": [
    {
      "operationId": "llm_classify_email",
      "name": "LLM Email Classifier",
      "version": "2.3.1",
      "description": "Classifies support emails using a language model",
      "runtime": "python",
      "author": "My Team",
      "tags": ["llm", "email", "classification"],
      "downloads": 1234,
      "publishedAt": "2026-01-15T10:00:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "perPage": 20
}

GET /nodes/{operationId}

Get details for a specific node.

Example:

shell
curl https://repo.flowdsl.com/api/v1/nodes/llm_classify_email

Response:

json
{
  "operationId": "llm_classify_email",
  "name": "LLM Email Classifier",
  "latestVersion": "2.3.1",
  "description": "Classifies support emails as urgent, normal, or spam",
  "runtime": "python",
  "repository": "https://github.com/myorg/flowdsl-nodes",
  "author": "My Team",
  "license": "Apache-2.0",
  "tags": ["llm", "email", "classification"],
  "manifest": { "...": "full flowdsl-node.json content" },
  "downloads": 1234,
  "publishedAt": "2026-01-15T10:00:00Z",
  "updatedAt": "2026-03-01T14:30:00Z"
}

GET /nodes/{operationId}/versions

List all published versions of a node.

Response:

json
{
  "versions": [
    { "version": "2.3.1", "publishedAt": "2026-03-01T14:30:00Z", "changelog": "Fixed rate limit handling" },
    { "version": "2.3.0", "publishedAt": "2026-02-15T10:00:00Z", "changelog": "Added Claude support" },
    { "version": "2.2.0", "publishedAt": "2026-01-20T09:00:00Z", "changelog": "New optional systemPrompt setting" }
  ]
}

POST /nodes (authenticated)

Publish a new node version.

Request:

shell
curl -X POST https://repo.flowdsl.com/api/v1/nodes \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d @flowdsl-node.json

Response:

json
{
  "operationId": "llm_classify_email",
  "version": "2.3.1",
  "status": "published",
  "publishedAt": "2026-03-28T10:00:00Z"
}

Full-text search across node names, descriptions, and tags.

shell
curl "https://repo.flowdsl.com/api/v1/search?q=twilio+sms&runtime=go"

CLI usage

shell
# Authenticate
flowdsl auth login

# Publish current node
flowdsl publish --manifest flowdsl-node.json

# Search the registry
flowdsl search "llm classification"

# Install a node (adds to node-registry.yaml)
flowdsl install [email protected]

Next steps

Copyright © 2026