API Logs and Monitoring

Logging endpoints are split across Core/api.py and Core/api_logging.py.


Workflow Log Retrieval

  • GET /api/projects/:project_id/workflows/:workflow_id/logs
  • GET /api/workflows/:project_id/:workflow_id/logs
  • GET /api/workflows/:project_id/:workflow_id/executions/:execution_id/logs
  • DELETE /api/projects/:project_id/workflows/:workflow_id/logs
  • DELETE /api/workflows/:project_id/:workflow_id/logs

Latest Signals

  • GET /api/workflows/:project_id/:workflow_id/logs/latest-node-log
  • GET /api/workflows/:project_id/:workflow_id/logs/latest-workflow-event
  • GET /api/projects/:project_id/workflows/:workflow_id/last-execution
  • GET /api/projects/:project_id/workflows/:workflow_id/animation-data

Ingestion and Append

  • POST /api/node-logs/batch/:env_id
  • POST /api/node-logs/:project_id/:workflow_id/:env_id
  • POST /api/workflows/:project_id/:workflow_id/logs/append
  • POST /api/workflows/:project_id/:workflow_id/logs

Example: Fetch Workflow Logs

GET /api/projects/:project_id/workflows/:workflow_id/logs

Typical response shape:

{
	"ok": true,
	"data": {
		"items": [
			{
				"ts": "2026-03-24T09:40:00Z",
				"level": "INFO",
				"nodeType": "RunModel",
				"message": "Execution completed"
			}
		]
	}
}

Example: Append Runtime Log

POST /api/workflows/:project_id/:workflow_id/logs/append
Content-Type: application/json
{
	"executionId": "exec_001",
	"nodeId": "node_12",
	"level": "INFO",
	"message": "Batch processed"
}

Common Errors

  • 404 workflow/execution context missing
  • 413 payload too large for append endpoint
  • 429 excessive logging rate from edge/runtime

Operational notes:

  • Use batched ingestion for high-throughput edge logs.
  • Keep log payloads compact and structured.
  • Include executionId and nodeId for incident triage.

Related Pages