Skip to main content
Version: Next

Advanced

Here you will be explained all the neat tricks and quirks for Secured Signal API

placeholders

Placeholders do exactly what you think they do: They replace actual values. These can be especially helpful when managing variables across multiple services.

How to Use

ScopeExample
Body{{@data.key}}
Header (except Authorization){{#Content_Type}}
Variable{{.VAR}}
note

Formatting rules (capitalization, escaping, and typing) are defined in Formatting

Where to Use

ScopeExample
Body{"number": "{{ .NUMBER }}", "recipients": "{{ .RECIPIENTS }}"}
Queryhttp://sec-signal-api:8880/v1/receive/?@number={{.NUMBER}}
Pathhttp://sec-signal-api:8880/v1/receive/{{.NUMBER}}

Combine them:

"message": "{{.NUMBER}} -> {{.RECIPIENTS}}"

Mix and match:

"message": "{{#X_Forwarded_For}} just send from {{.NUMBER}}"
note

Placeholders follow strict formatting rules (See Formatting)

URL-to-Body Injection

Sounds scary… but it really isn't. 🫣

URL-to-Body Injection is a powerful feature designed for restricted or inflexible environments.

In some setups, webhook configuration is extremely limited. For example, you may only be able to define a webhook URL, without any control over the request body. This becomes a problem when every receiving service is expected to support the Signal CLI REST API format. In such cases, using a simple, generic webhook is not possible.

URL-to-Body Injection solves this by allowing you to inject values directly into the request body via query parameters or seperated path parameters.

http://sec-signal-api:8880/@key2=value2/?@key=value

important
  • Supported value types include strings, integers, arrays, and JSON objects
  • See Formatting for details on supported structures and syntax
note

Supported placeholder types:

. Variables@ Body# Headers