Webhooks are HTTP callbacks triggered by device events (button press,
switch state change, etc.). Each webhook has an event type, target URL(s),
and can be enabled or disabled.
Output is formatted as a table by default. Use -o json or -o yaml for
structured output suitable for scripting.
Columns: ID, Event, URLs (truncated if long), Enabled (Yes/No)
# List all webhooks
shelly webhook list living-room
# Output as JSON for scripting
shelly webhook list living-room -o json
# Get enabled webhooks only
shelly webhook list living-room -o json | jq '.[] | select(.enable == true)'
# Extract just webhook URLs
shelly webhook list living-room -o json | jq -r '.[].urls[]'
# Find webhooks for specific event
shelly webhook list living-room -o json | jq '.[] | select(.event | contains("switch"))'
# Count webhooks by event type
shelly webhook list living-room -o json | jq 'group_by(.event) | map({event: .[0].event, count: length})'
# Short form
shelly webhook ls living-room
--config string Config file (default $HOME/.config/shelly/config.yaml)
-F, --fields Print available field names for use with --jq and --template
-Q, --jq stringArray Apply jq expression to filter output (repeatable, joined with |)
--log-categories string Filter logs by category (comma-separated: network,api,device,config,auth,plugin)
--log-json Output logs in JSON format
--no-color Disable colored output
--no-headers Hide table headers in output
--offline Only read from cache, error on cache miss
-o, --output string Output format (table, json, yaml, template) (default "table")
--plain Disable borders and colors (machine-readable output)
-q, --quiet Suppress non-essential output
--refresh Bypass cache and fetch fresh data from device
--template string Go template string for output (use with -o template)
-v, --verbose count Increase verbosity (-v=info, -vv=debug, -vvv=trace)