Skip to content

API Reference

This page documents all API endpoints available when running Flow-Like on Kubernetes.

Terminal window
# 1. Forward the API port to your local machine
kubectl port-forward svc/flow-like-api 8083:8080 -n flow-like &
# 2. Test the health endpoint
curl http://localhost:8083/api/v1/health
# Response: {"status":"ok"}
# 3. Test the Kubernetes health probe
curl http://localhost:8083/health/live
# Response: {"status":"healthy","version":"0.1.0"}

Why is the port 8080 inside the container but I use 8083 locally?

Your Machine Kubernetes Cluster
┌────────────┐ ┌──────────────────────────────┐
│ │ port-forward │ ┌──────────────────────┐ │
│ localhost │──────────────▶│ │ flow-like-api │ │
│ :8083 │ │ │ Port 8080 │ │
│ │ │ └──────────────────────┘ │
└────────────┘ └──────────────────────────────┘
  • 8080 is the port the API listens on inside the container
  • 8083 (or any port you choose) is the port on your machine
  • kubectl port-forward creates a tunnel between them

You can use any local port:

Terminal window
kubectl port-forward svc/flow-like-api 3000:8080 -n flow-like
# Now access at http://localhost:3000

These endpoints are used by Kubernetes to check if the service is running correctly.

EndpointPurposeUsed By
GET /health/liveLiveness probeKubernetes restarts the pod if this fails
GET /health/readyReadiness probeKubernetes stops sending traffic if this fails
GET /health/startupStartup probeKubernetes waits for this before other probes

Example Response:

{
"status": "healthy",
"version": "0.1.0"
}
EndpointPurpose
GET /api/v1/healthBasic health check
GET /api/v1/health/dbDatabase connectivity check

Example:

Terminal window
# Basic health
curl http://localhost:8083/api/v1/health
# {"status":"ok"}
# Database health (returns round-trip time)
curl http://localhost:8083/api/v1/health/db
# {"rtt":5}

These Kubernetes-specific endpoints manage workflow execution jobs.

MethodEndpointDescription
POST/jobs/submitSubmit a new workflow job
GET/jobs/{job_id}Get job status
POST/jobs/{job_id}/cancelCancel a running job
Terminal window
curl -X POST http://localhost:8083/jobs/submit \
-H "Content-Type: application/json" \
-d '{
"app_id": "your-app-id",
"board_id": "your-board-id",
"version": "latest",
"payload": {"key": "value"},
"mode": "async"
}'

Response:

{
"job_id": "job-abc123",
"status": "queued"
}
Terminal window
curl http://localhost:8083/jobs/job-abc123

Response:

{
"job_id": "job-abc123",
"status": "running",
"started_at": "2025-01-01T12:00:00Z",
"completed_at": null,
"error": null
}
Terminal window
curl -X POST http://localhost:8083/jobs/job-abc123/cancel
# Returns: 204 No Content

All standard Flow-Like API endpoints are available under /api/v1/.

EndpointDescription
GET /api/v1/Hub information (platform config)
GET /api/v1/versionAPI version
GET /api/v1/catalogAvailable node catalog
EndpointDescription
GET /api/v1/info/legalLegal notice
GET /api/v1/info/privacyPrivacy policy
GET /api/v1/info/termsTerms of service
GET /api/v1/info/contactContact information
GET /api/v1/info/featuresEnabled features
GET /api/v1/info/profilesProfile templates
EndpointDescription
POST /api/v1/auth/loginUser login
POST /api/v1/auth/registerUser registration
POST /api/v1/auth/refreshRefresh access token
GET /api/v1/oauth/{provider}OAuth login redirect
EndpointDescription
GET /api/v1/userGet current user
PUT /api/v1/userUpdate current user
GET /api/v1/profile/{id}Get user profile
EndpointDescription
GET /api/v1/appsList user’s applications
POST /api/v1/appsCreate new application
GET /api/v1/apps/{id}Get application details
PUT /api/v1/apps/{id}Update application
DELETE /api/v1/apps/{id}Delete application
EndpointDescription
POST /api/v1/execution/runExecute a workflow
GET /api/v1/execution/{id}Get execution status
EndpointDescription
GET /api/v1/storeBrowse marketplace
GET /api/v1/store/{id}Get store item details

Terminal window
# From your terminal
kubectl port-forward svc/flow-like-api 8083:8080 -n flow-like &
curl http://localhost:8083/api/v1/health
Terminal window
# Install: brew install httpie
# Health check
http GET localhost:8083/api/v1/health
# Submit job
http POST localhost:8083/jobs/submit \
app_id=myapp \
board_id=myboard
Terminal window
# Create a debug pod
kubectl run curl --image=curlimages/curl -it --rm -- sh
# Inside the pod
curl http://flow-like-api:8080/api/v1/health

CodeMeaning
200Success
201Created
204No Content (success with no body)
400Bad Request (invalid input)
401Unauthorized (missing/invalid token)
403Forbidden (insufficient permissions)
404Not Found
500Internal Server Error