Skip to main content
Version: Stable

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 (%2C for ,, %7C%7C for ||, %2A%2A for **)

Advanced Arguments

ArgumentTypeDefaultDescription
whenexpression-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

ArgumentTypeDefaultDescription
whenexpression-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!