Run GPU workflows programmatically. Build a graph of nodes, submit it, and poll for results — the same engine that powers the visual builder, available over a simple REST API.
Generate an API key under Team → API keys in the app, then pass it on every request via the
X-API-Key header. Each key is scoped to your tenant; runs are billed to your tenant's balance.
# Base URL
https://ENTBOX_HOST:8000
# Every request:
-H "X-API-Key: eb_your_key_here"
Submit a workflow graph for execution. Returns a run_id immediately; execution is asynchronous.
curl -sk https://ENTBOX_HOST:8000/api/run \
-H "X-API-Key: eb_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "summarize",
"graph": {
"nodes": [
{"id":"n1","type":"dataset","params":{"content":"GPUaaS lets you rent GPUs on demand."}},
{"id":"n2","type":"model","params":{"resource":"gpu.amd","max_tokens":120}},
{"id":"n3","type":"review","params":{"action":"draft-pr","title":"summary"}}
],
"edges": [
{"source":"n1","target":"n2"},
{"source":"n2","target":"n3"}
]
}
}'
# → {"run_id": 42}
Poll a run. status is one of queued, running, completed,
error, or cancelled. When complete, outputs holds each node's result.
curl -sk https://ENTBOX_HOST:8000/api/runs/42 \
-H "X-API-Key: eb_your_key_here"
# → {"status":"completed","cost":0.0021,
# "node_states":{"n1":"done","n2":"done","n3":"done"},
# "outputs":{"n2":"GPUaaS is on-demand GPU rental...", ...}}
List your recent runs (id, status, duration, cost).
Request cancellation. The run stops at the next node boundary.
List committed artifacts (from Review nodes), or download one's content.
The full node catalog with parameters and the resource/pricing table — handy for building graphs dynamically.
Live GPU status (VRAM, utilization) and running container count.
Each node has a type, an id, and a params object. Connect them with
edges. Router nodes branch using a sourcePort of "match" or "else" on the edge.
| Type | Category | What it does |
|---|---|---|
dataset | Data | Inline data as a flow source |
httpfetch | Data | Fetch from an external HTTP API |
intent | Intent | Shape/template input before the next node |
model | Model | Run an open-source model on a GPU |
orchestrator | Orchestrator | Plug in Claude / your own API |
compute | Compute | Run a Docker container job |
conditional | Logic | Gate the flow on a condition |
router | Logic | Branch to match / else |
review | Review | Commit a downloadable artifact |
GET /api/nodes to discover every node's exact parameter keys, defaults, and the
current pricing tiers, so your client always matches the live platform.Save a workflow in the builder, then schedule it from Runs → Scheduled to run automatically on an interval. Each scheduled fire is a normal run, billed the same way.