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 the simplest of them cannot 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 tries to close 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 with your overlay key in its URL. This URL is the only way to send a test alert; there is no button for it on the board. 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. add adds the seconds you give it (a negative number removes time). Follows, subs, cheers and raids also extend the clock on their own: a follow adds 10 seconds, a sub 5 minutes, a resub 3 minutes, each gifted sub 5 minutes, each bit 1 second and a raid 1 minute. There is no maximum length, so a key press adds exactly what you ask for. 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: the count is stored against the category pulz last saw on your channel, live or offline, which matches the widget's Count separately per game setting being on by default. Pass game to choose one yourself. subtract and set never go below zero, reset clears it, and the reply tells you the new number.
Twitch
Two actions act on your own Twitch channel. Both only work while you are live and need a Twitch permission; if it is missing, the reply says which one.
- Create a clip - /clip clips the last 30 seconds of your stream and replies with a link to finish the clip on Twitch, for example Clipped - finish it at https://clips.twitch.tv/.... Needs Create clips.
- Add a VOD marker - /marker drops a marker in your VOD and replies with where it landed, for example Marker added at 1:23:45. Takes an optional text note, up to 140 characters. Needs Title, category and markers.
Neither permission can be granted from the dashboard at the moment, so these two only work if you granted them earlier.
What a trigger cannot do
Every action changes your own overlays or, for clips and markers, your own channel. None of them spends money or touches another account. Clips and markers only work if you turned on the matching Twitch permission; with those off, a leaked key can only change what is on your overlays. 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 (clip and marker) need Twitch connected and a permission. The rest act on your own overlay state and need nothing beyond a scene to change.