Use case

Start a Stagetimer countdown on a schedule.

Recurring livestreams and daily standups need the countdown to start at a fixed time, not when someone remembers to press play. Crontap sends that HTTP call on a cron, in the room's timezone.

Get started

Free plan · no credit card required

The problem

Why this is painful without the right tool

  • The controller starts the selected timer when a person clicks it. A 9:00 livestream still waits on whoever is holding the laptop.
  • GET /v1/start, /v1/show_message, and /v1/next run once when something calls them. None of those endpoints takes a cron.
  • A laptop cron or a Companion button works until that machine sleeps, or the operator is in the other room.

The fix

How Crontap solves it

Crontap sends a GET at the time you pick, in the room's timezone. One schedule per action. Put room_id on the URL and the API key in an Authorization bearer header.

cron expression
30 9 * * 1-5
Weekdays at 09:30. Starts the first timer in the rundown.

For an 18:00 livestream on weekdays, use 0 18 * * 1-5 with one of the URLs below.

Start a timer
Index counts from the top of the rundown and starts at 1. Use timer_id if the row order changes. /v1/start only starts the timer highlighted on the controller.https://api.stagetimer.io/v1/start_timer?room_id=YOUR_ROOM_ID&index=1
Show a message
Use index or message_id. Index starts at 1.https://api.stagetimer.io/v1/show_message?room_id=YOUR_ROOM_ID&index=1
Next timer
autostart=true starts that timer. The call does nothing if the last timer is already selected.https://api.stagetimer.io/v1/next?room_id=YOUR_ROOM_ID&autostart=true

Parameter names are in the Stagetimer API reference.

  • The hosted API is on any paid Stagetimer license. A room key covers one room. A team key covers every room the team owns.
  • Put Bearer YOUR_API_KEY in the Authorization header so the key stays off the URL.
  • Crontap stores the status code on the run. It retries 5xx responses, timeouts, and network errors, then alerts. 4xx responses are not retried unless you turn that on.
  • Email is on every plan. Slack, Discord, and Telegram need a paid plan.

FAQ

Common questions

Does the Stagetimer API include a scheduler?
Those endpoints run when something calls them. A timer can still use trigger SCHEDULED and a start_time, and Stagetimer starts it when the room has an event date. Crontap calls a URL at a fixed time, including when nobody is at the controller. Scripts, Bitfocus Companion, and vMix call the same endpoints when you trigger them.
Which HTTP method should the schedule use?
GET. Stagetimer v1 uses GET for every HTTP endpoint, including the ones that change the room. Set the schedule method to GET and leave the body empty.
Where do the room id and API key go?
room_id is a query parameter on the URL. Send the API key as Authorization: Bearer YOUR_API_KEY. Stagetimer also accepts api_key on the query string. The header keeps the key out of URLs that get copied into logs.

Ready to fix it?

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

Free forever tier ・ No credit card required

GET

/wp-cron.php?doing_wp_cron=1

Running
Your next schedule

Schedule

"every 5 minutes"

Next

in 23s