This page documents all API endpoints available when running Flow-Like on Kubernetes.
# 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:
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.
| Endpoint | Purpose | Used By |
|---|
GET /health/live | Liveness probe | Kubernetes restarts the pod if this fails |
GET /health/ready | Readiness probe | Kubernetes stops sending traffic if this fails |
GET /health/startup | Startup probe | Kubernetes waits for this before other probes |
Example Response:
| Endpoint | Purpose |
|---|
GET /api/v1/health | Basic health check |
GET /api/v1/health/db | Database connectivity check |
Example:
curl http://localhost:8083/api/v1/health
# Database health (returns round-trip time)
curl http://localhost:8083/api/v1/health/db
These Kubernetes-specific endpoints manage workflow execution jobs.
| Method | Endpoint | Description |
|---|
POST | /jobs/submit | Submit a new workflow job |
GET | /jobs/{job_id} | Get job status |
POST | /jobs/{job_id}/cancel | Cancel a running job |
curl -X POST http://localhost:8083/jobs/submit \
-H "Content-Type: application/json" \
"board_id": "your-board-id",
"payload": {"key": "value"},
Response:
curl http://localhost:8083/jobs/job-abc123
Response:
"started_at": "2025-01-01T12:00:00Z",
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/.
| Endpoint | Description |
|---|
GET /api/v1/ | Hub information (platform config) |
GET /api/v1/version | API version |
GET /api/v1/catalog | Available node catalog |
| Endpoint | Description |
|---|
GET /api/v1/info/legal | Legal notice |
GET /api/v1/info/privacy | Privacy policy |
GET /api/v1/info/terms | Terms of service |
GET /api/v1/info/contact | Contact information |
GET /api/v1/info/features | Enabled features |
GET /api/v1/info/profiles | Profile templates |
| Endpoint | Description |
|---|
POST /api/v1/auth/login | User login |
POST /api/v1/auth/register | User registration |
POST /api/v1/auth/refresh | Refresh access token |
GET /api/v1/oauth/{provider} | OAuth login redirect |
| Endpoint | Description |
|---|
GET /api/v1/user | Get current user |
PUT /api/v1/user | Update current user |
GET /api/v1/profile/{id} | Get user profile |
| Endpoint | Description |
|---|
GET /api/v1/apps | List user’s applications |
POST /api/v1/apps | Create new application |
GET /api/v1/apps/{id} | Get application details |
PUT /api/v1/apps/{id} | Update application |
DELETE /api/v1/apps/{id} | Delete application |
| Endpoint | Description |
|---|
POST /api/v1/execution/run | Execute a workflow |
GET /api/v1/execution/{id} | Get execution status |
| Endpoint | Description |
|---|
GET /api/v1/store | Browse marketplace |
GET /api/v1/store/{id} | Get store item details |
kubectl port-forward svc/flow-like-api 8083:8080 -n flow-like &
curl http://localhost:8083/api/v1/health
# Install: brew install httpie
http GET localhost:8083/api/v1/health
http POST localhost:8083/jobs/submit \
kubectl run curl --image=curlimages/curl -it --rm -- sh
curl http://flow-like-api:8080/api/v1/health
| Code | Meaning |
|---|
200 | Success |
201 | Created |
204 | No Content (success with no body) |
400 | Bad Request (invalid input) |
401 | Unauthorized (missing/invalid token) |
403 | Forbidden (insufficient permissions) |
404 | Not Found |
500 | Internal Server Error |