Skip to content

API Reference

The Kubernetes image uses the shared Flow-Like API router. The generated OpenAPI document in the running deployment is the authoritative endpoint reference; this page describes how to reach it and highlights the Kubernetes-specific routes.

Start a foreground port forward:

Terminal window
kubectl port-forward service/flow-like-api 8083:8080 -n flow-like

Then open:

URLPurpose
http://localhost:8083/swagger-uiInteractive Swagger UI
http://localhost:8083/api-doc/openapi.jsonMachine-readable OpenAPI document
http://localhost:8083/api/v1/Hub configuration
http://localhost:8083/api/v1/versionAPI version route

8083 is an arbitrary local port. 8080 is the API Service port in the chart:

Terminal window
kubectl port-forward service/flow-like-api 3000:8080 -n flow-like

With that command, use http://localhost:3000.

These routes are added by the Kubernetes API binary and are outside /api/v1.

EndpointExpected success bodyKubernetes behavior
GET /health/live{"status":"healthy","version":"…"}Restarts the container after repeated failures
GET /health/ready{"status":"ready","version":"…"}Removes the Pod from Service endpoints while failing
GET /health/startup{"status":"started","version":"…"}Delays liveness and readiness checks during startup
Terminal window
curl -fsS http://localhost:8083/health/live
curl -fsS http://localhost:8083/health/ready
curl -fsS http://localhost:8083/health/startup

The current probe handlers report process state. They do not query the database.

EndpointPurpose
GET /api/v1/healthBasic shared-router health check
GET /api/v1/health/dbDatabase ping with round-trip time in milliseconds
Terminal window
curl -fsS http://localhost:8083/api/v1/health
curl -fsS http://localhost:8083/api/v1/health/db

Example shapes:

{"status":"ok"}
{"rtt":5}

The shared router currently mounts these high-level groups under /api/v1:

PrefixArea
/appsApps and nested boards, events, pages, routes, data, roles, teams, and packages
/user, /profileUser and profile operations
/executionExecutor progress/events and run status
/sinkSink management and trigger delivery
/registryWASM package registry
/store, /solution, /coursesPublic catalogs and solution content
/auth, /oauthOpenID proxy/configuration and OAuth flows
/ai, /chat, /embeddingsAI and chat services
/usage, /audit, /adminUsage, audit, and administration
/info, /healthHub information and shared health

Routes change as the shared API evolves. Use the live OpenAPI document for methods, request bodies, response schemas, and authentication requirements instead of copying a static endpoint list.

Registered inbound interfaces are mounted separately:

PrefixInterface
/r/*App-defined inbound REST routes
/m/*App-defined inbound MCP routes

These routers bypass the API’s general user-JWT middleware because each registration enforces its own authentication. Treat them as public-facing integration surfaces and configure every registration explicitly.

Metrics use a separate listener and Service port:

Terminal window
kubectl port-forward service/flow-like-api 9090:9090 -n flow-like
curl -fsS http://localhost:9090/metrics

Do not expose the metrics port publicly unless an authenticated monitoring path protects it.

Start an ephemeral curl Pod:

Terminal window
kubectl run flow-like-debug \
--image=curlimages/curl \
--restart=Never \
--rm -it \
-n flow-like \
-- sh

Inside the Pod:

Terminal window
curl -fsS http://flow-like-api:8080/health/ready
curl -fsS http://flow-like-api:8080/api/v1/health/db

The Service DNS name assumes the Helm release is named flow-like.

CodeMeaning
200Request succeeded
201Resource created
204Request succeeded with no response body
400Invalid input
401Missing or invalid authentication
403Authenticated principal lacks permission
404Route or resource was not found
409Request conflicts with current state
429Usage or rate limit reached
500Internal server error
503Required service or feature is unavailable