Workflows
Execute an inline workflow
Run a CNL workflow sent in the body, as JSON `{workflow, input}` or as a raw `text/yaml` document. Returns a pointer; read the content from the result route.
Headers: every response carries x-request-id (quote it in support requests). Send x-trace-id (optional, a UUID) to correlate this call across planes; reusing an id that already ran answers 409 duplicate_execution_id. Pick the body format with format or Accept (application/json, text/yaml, text/markdown, text/plain).
Authorization: send Authorization: Bearer $PLUNGE_API_KEY; X-API-Key: <ozk_ key> is accepted as an alternative.
Authorizations
Authorization: Bearer ozk_…. ozk_ platform API key (Authorization: Bearer ozk_…)Body
application/jsontext/yaml
One of three shapes: a bare agent call (agent + the agent's own fields), a workflow object or YAML string, or top-level name/tasks (auto-nested). format, input, inputs, stream, sync, dry_run and metadata are wire keys and never reach the agent.
tasks: the workflow namename: the task list, auto-nested under workflowAvailable options: json, yaml, markdown, text
Response
Engine acknowledgement Response format negotiates via the format field, an Accept header (application/json, text/yaml, text/markdown, text/plain), or the request Content-Type mirror; default JSON.
application/jsontext/yamltext/markdowntext/plain
Response headers
missing_workflow (none of workflow / agent / tasks) / ambiguous_body (agent next to workflow or tasks) / reserved_field (a field named like an engine task key) / invalid_json / invalid_yaml / invalid_body (unreadable body) / invalid_format — format must be one of json, yaml, markdown, text
application/json
Missing, invalid, expired or revoked ozk_ key.
Error code: unauthorizedfrom code
agent_not_active — a named agent card is not status:active (refused pre-dispatch)
application/json
unknown_agent — a named agent id does not exist in the registry (refused pre-dispatch)
application/json
duplicate_execution_id — x-trace-id already used by an earlier run — send a fresh UUID
application/json
payload_too_large — body over 1 MiB (MAX_REQUEST_SIZE)
application/json
rate_limited — Retry-After header
application/json
engine_error
application/json