HuluFlow · API
Models
Shared headers, response bodies, and errors across endpoints.
Authentication
All `/api/v1/*` calls need `Authorization: Bearer hulu_…`
Authorization: Bearer hulu_…
WorkflowOut
{
"id": 12,
"name": "Product pipeline",
"status": "paused",
"graph_json": { "nodes": [], "edges": [] },
"interval_minutes": 1440,
"next_run_at": null,
"last_run_at": null,
"last_error": null,
"created_at": "2026-01-01T00:00:00Z"
}
WorkflowRunOut
{
"id": 101,
"workflow_id": 12,
"status": "success",
"error": null,
"started_at": "2026-01-01T12:00:00Z",
"finished_at": "2026-01-01T12:01:30Z"
}
DatasetOut / DatasetRowsOut
{
"id": 3,
"name": "Products",
"row_count": 240,
"column_count": 4,
"columns": [{ "key": "title", "label": "title", "type": "text" }],
"page": 1,
"page_size": 50,
"total": 240,
"total_pages": 5,
"rows": [{ "id": 1, "key_hash": "…", "data": { "title": "Item" }, "created_at": "…", "updated_at": "…" }]
}
Errors
FastAPI-style `detail`; quota exceeded is HTTP 402.
{ "detail": "Invalid API key" }
HTTP 401
{ "detail": "Credit quota exceeded" }
HTTP 402
{ "detail": "Workflow not found" }
HTTP 404
Pagination
List endpoints use `page`, `page_size`, `total`, `total_pages`.