HTTP
These commands make HTTP requests to external services. Both commands run asynchronously in the background with a 30-second timeout, so they won't block script execution.
By default, all URLs are accessible. Use allow_http in the config file to restrict which URLs these commands can reach.
http.get
Performs an HTTP GET request to a URL.
Syntax
**http.get:<url>
Arguments
url (required)
The full URL to request. Must include the protocol (http:// or https://).
If your URL contains special characters, you can either:
- Escape them with
^(e.g.,^?for a literal?) - Quote the entire URL (e.g.,
**http.get:"https://example.com/?q=test") - URL encode them (
%2Cfor,,%7C%7Cfor||,%2A%2Afor**)
Advanced Arguments
| Argument | Type | Default | Description |
|---|---|---|---|
when | expression | - | Conditional execution (see Expressions) |
Examples
Trigger a simple webhook:
**http.get:https://example.com/webhook
Trigger a webhook and then launch SNES:
**http.get:https://example.com/api/trigger||_Console/SNES
Make a request with query parameters, quoted to avoid parsing issues:
**http.get:"https://example.com/search?q=test&page=1"
http.post
Performs an HTTP POST request with a body.
Syntax
**http.post:<url>,<content-type>,<body>
Arguments
url (required)
The full URL to request. Must include the protocol.
content-type (required)
The MIME type of the request body (e.g., application/json, text/plain).
body (required)
The request body content. Can be empty.
Advanced Arguments
| Argument | Type | Default | Description |
|---|---|---|---|
when | expression | - | Conditional execution (see Expressions) |
Examples
Post JSON data to an API endpoint:
**http.post:https://example.com/api,application/json,{"event":"scan"}
Trigger a local API with an empty body:
**http.post:http://localhost:8182/api/scripts/launch/update_all.sh,application/json,
Send a plain text notification:
**http.post:https://hooks.example.com/notify,text/plain,Token scanned!