Explore WebRobot's capabilities through interactive demonstrations:
Run publicly available ETL pipelines from our documentation. Preview limited to 5-10 records.
No pipelines available. Please check backend connection.
Pick stages from the live catalog and assemble them step by step β same shape as webrobot pipeline add-stage on the CLI. No black-box generation.
(add at least one stage)
Access client-specific demos and plugins. Requires API key authentication. Demo content is customized based on your account.
Enter your API key to view demos available for your account.
Every endpoint this page hits is exposed publicly under https://api.webrobot.eu/api/webrobot/api/demo/*. No JWT, no API key β same demo posture you see in the browser is reachable from any HTTP client. OpenAPI spec at api.webrobot.eu/api/openapi.json (216 paths, 25 demo).
curl -s https://api.webrobot.eu/api/webrobot/api/demo/list \
| jq '.demos[] | {pipeline_name, is_draft, requires_input_dataset}'Returns curated Demo: β¦ entries plus your saved drafts Generated: β¦ (is_draft: true).
EXEC=$(curl -s -X POST \
https://api.webrobot.eu/api/webrobot/api/demo/execute/01-wiki-us-presidents \
-H 'content-type: application/json' \
-d '{"parameters":{"limit":10}}' \
| jq -r '.execution_id')
echo "execution_id=$EXEC"Demo runs are capped at 5β10 records; ignore limit outside that range.
watch -n 3 "curl -s \
https://api.webrobot.eu/api/webrobot/api/demo/executions/$EXEC/status \
| jq '{phase, status, executors_ready, executors_total, duration_seconds}'"phase = submitting / starting_driver / pulling_executors / running / completed / failed / lost.
# preview rows (via Trino β MinIO/Parquet)
curl -s "https://api.webrobot.eu/api/webrobot/api/demo/executions/$EXEC/output?limit=10" \
| jq '{source, columns, rows: (.rows | length)}'Response includes source: "trino" (preferred) or "minio-direct" (fallback). Format-agnostic.
curl -s "https://api.webrobot.eu/api/webrobot/api/demo/executions/$EXEC/logs?tail=200&podType=driver" | jq -r '.logs'
curl -s "https://api.webrobot.eu/api/webrobot/api/demo/executions/$EXEC/logs?tail=200&podType=executor&executorIndex=1" | jq -r '.logs'Direct kubectl logs-equivalent, sanitized server-side (secrets / pod names / internal classpaths stripped).
cat > /tmp/my.yaml <<'EOF'
pipeline:
- stage: wget
args: ["https://en.wikipedia.org/wiki/Apache_Spark"]
- stage: extract
args:
- { selector: "h1#firstHeading", method: "text", as: "title" }
EOF
curl -s -X POST https://api.webrobot.eu/api/webrobot/api/demo/save-generated-pipeline \
-H 'content-type: application/json' \
-d "{\"pipeline_name\":\"my-pipe\",\"pipeline_yaml\":$(jq -Rs . < /tmp/my.yaml),\"execute\":true}" \
| jq '{agent_id, status, execution: .execution.execution_id}'Same YAML schema the wizard emits. The new agent shows up in /demo/list as Generated: my-pipe with is_draft: true.
curl -s -X POST https://api.webrobot.eu/api/webrobot/api/demo/wizard/validate \
-H 'content-type: application/json' \
-d "{\"yaml\":$(jq -Rs . < /tmp/my.yaml)}" \
| jq '{valid, record_count, steps: (.steps | map({stage, status}))}'Opens an ephemeral Camoufox session, replays the fetch trace, samples up to 5 records. Cheap dry-run before launching the Spark job.
curl -s https://api.webrobot.eu/api/webrobot/api/demo/catalog/stages \
| jq '.data[] | {stage_name, args: (.arg_schema | map(.name))}'62 stages, dynamic. Same source the wizard reads. New stages here without rebuilding any client.
SDKs: github.com/WebRobot-Ltd/sdks generates Python / TypeScript / PHP / Go clients from the same OpenAPI spec (./generate-sdks.sh after a refresh).
CLI: github.com/WebRobot-Ltd/webrobot-cli β Scala CLI for the agent / manifest / bundle surface; a dedicated demo subcommand is on the roadmap, in the meantime the curl recipes above cover the demo flow end-to-end.