Skip to main content
API buttons send an outbound HTTP request every time you press them. The URL, method, headers, and body are all stored in the button spec.

Basic GET

Press it:
The {{user_id}} placeholder in the URL path is replaced with the value you pass. Values in path segments are encoded with PathEscape to prevent injection.

POST with a body

Context-aware encoding

{{arg}} substitution is aware of where in the request the value appears: This means a value like O'Reilly & Sons is safe to pass into a JSON body or a query string without manual escaping. See template encoding for the full details.

Custom headers

Pass --header once per header. Headers support {{arg}} substitution just like the URL and body:

Response size limit

Responses are capped at 10 MB by default. Override with --max-response-size, which accepts a size with an optional unit suffix (B, K/KB, M/MB, G/GB; a bare number means bytes). The hard ceiling is 2 GB.

Private network targets

By default, HTTP buttons block requests to private network ranges (loopback, RFC 1918, link-local). To allow a localhost or intranet target, pass --allow-private-networks at create time:
Only use --allow-private-networks for buttons that target your own infrastructure. See SSRF protection for the full threat model.