What a trigger URL is
Every action has its own address, in the shape https://pulz.bio/t/YOUR-TOKEN/scene. Anything the action needs rides in the query string, so https://pulz.bio/t/YOUR-TOKEN/scene?to=2 is a complete instruction. GET and POST both work, and neither needs a header or a body.
That shape exists for the callers that matter. A Stream Deck key, an iPhone shortcut, an AutoHotkey line and an IFTTT applet can all open a URL, and none of them can send a header.
This is also the difference between pulz and a desktop bot. A bot runs on your machine, so it has to be installed, updated and running before anything can reach it. pulz is already an endpoint on the internet, so a key pressed on a phone in another room or another country reaches your overlays through the same path your own dashboard uses.
Where to find yours
- Open your dashboard and pick Automations in the sidebar.
- Find the action you want. Each row shows its full URL, with example arguments already filled in.
- Press the copy button on that row and paste the URL wherever it should fire from.The card at the top, Your trigger key, is the same address with no action on the end. That one is the credential itself - see Keeping your keys safe.
What comes back
Open a trigger URL in a browser and you get a small page with one line saying what happened, which closes itself after about a second. Anything that is not a browser - a bot, a shortcut, an automation service - gets a short JSON reply carrying the same message.
A URL with a token that does not exist returns a 404, and so does an action that does not exist. The 404 on a bad token is deliberate: a 403 would confirm that real tokens exist.
The actions
These are grouped the same way the Automations page groups them. Every argument is optional, so a URL with nothing after the action name still does something sensible.
Scenes
Switch scene - /scene sets which of your scenes is live. Only enabled overlay scenes count, and the number is the same one that appears in that scene's browser source URL as ?scene=2.
- to - the scene number. Left off, pulz uses scene 1.
It replies with the name of the scene it moved to, No scene 3 if that number is not one of your enabled scenes, or No scenes yet if you have not built one.
Next scene - /scene-next steps to the next enabled scene in number order and wraps around at the end. If nothing is live yet it picks your first scene. It takes no arguments, which is what makes it a good single key.
Safety
Privacy screen - /panic drops a cover over your scene. The cover goes out to your open sources before the change is saved, because a privacy screen exists to hide something that is on screen right now.
- on - on, off or toggle. It also accepts 1, 0, true and false. Left off, every press toggles, which is what one physical key needs.
Alerts
Test alert - /test-alert fires a sample alert through your real alert settings, on every source you have open. It goes to the front of the queue rather than the back, so the only thing it waits for is an alert already on screen.
- type - one of follow, sub, resub, gift, cheer, raid, channel_points, donation or hype_train. Defaults to follow.
A type that is not on that list shows nothing, even though the reply still says the alert was sent.
Clear spotlight - /spotlight takes the pinned chat message off screen. No arguments. Pinning a message happens in Stream Control; this is the key that clears it.
Play a sound - /sound asks the Sound layers on your open sources to play.
- layer - the id of one Sound layer, so two sounds on one scene can fire separately. The editor does not show layer ids, so in practice you leave this off: with no layer named, every Sound layer on an open source plays.
Timers and counters
Timer - /timer drives one named countdown or stopwatch. The name has to match the Timer field on the timer widget, which is main until you change it.
- do - start, up, pause, resume, add, reset or stop. Defaults to start.
- key - the timer name, up to 30 characters. Defaults to main.
- seconds - how long start counts down from, or how much add changes it by. Defaults to 300.
start counts down from seconds and up counts up from now. pause banks what is left and resume puts it back. add with a negative number takes time off. reset and stop both clear the timer. Adding to a timer that is not running replies That timer is not running and changes nothing.
Subathon - /subathon drives the subathon clock, the same clock subs and cheers extend on their own.
- do - start, stop, pause, resume or add. Defaults to add.
- seconds - how much time to add, or how long a new clock runs for. A negative number removes time.
- hours - read by start only, and only when seconds is left off. Defaults to 2.
start begins a fresh clock and sets the multiplier back to 1, keeping the rules and the maximum length you already set. add applies your multiplier and respects that maximum, so one key cannot commit you to a four-day stream by accident. Adding with nothing running replies No subathon running.
Counter - /counter changes any number you keep on screen, such as deaths or wins.
- key - the counter name, up to 30 characters. Defaults to deaths, and has to match the Counter field on the widget.
- do - add, subtract, set or reset. Defaults to add.
- value - how much to add, subtract or set to. Defaults to 1.
- game - store the count against this category instead of the one you are live in.
Counts are kept per category. While your Twitch status carries a category the count is stored against it, which matches the widget's Count separately per game setting being on by default. Offline, or with no category, the count is stored on its own. subtract and set never go below zero, reset clears it, and the reply tells you the new number.
Twitch
Both Twitch actions are in the list, both have buttons in Stream Control, and neither does anything yet. Each one answers with a message and stops there, whether or not you have granted the permission it names.
- Create a clip - /clip is meant to clip the last 30 seconds and put it on your page. Today it replies Connect Twitch with clip access first.
- Add a VOD marker - /marker takes a text note and is meant to drop a marker in your VOD. Today it replies Connect Twitch with broadcast access first.
The permissions those two name are the ones listed under Connections as Create clips and Title, category and markers.
What a trigger cannot do
Every action on the list is a visual change to your own overlays. None of them reads your data, spends money, posts anywhere or touches another account. That is the trade that makes a one-click URL acceptable as a credential.
FAQ
Does the same URL work from a browser and from a bot?
Yes. A browser gets a small page with one line on it that closes itself; everything else gets JSON with the same message. There is one URL, not a browser version and an API version.
Do the dashboard buttons do the same thing as my URLs?
Yes. The buttons in Stream Control run the same handlers as the Remote Trigger API, so a button and the URL that documents it cannot drift apart.
Can I change what a key does without copying a new URL?
Yes. Edit the query string on the URL you already have: /scene?to=3, /timer?do=pause&key=break, /counter?key=deaths&do=subtract&value=1.
Do I need Twitch connected for these?
Only the two Twitch actions name a Twitch permission, and neither of those works yet. The rest act on your own overlay state and need nothing beyond a scene to change.