Technical reference

The anatomy of a RecipeTimer URL

Every RecipeTimer link is a plain URL with query parameters. You can build them programmatically or use the timer generator for one-off links.

URL structure

https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta&src=https://yoursite.com/recipe
recipetimer.app/tBase path — always the same?h=0&m=12&s=0Duration (0 hours, 12 minutes, 0 seconds)&t=PastaTimer name&src=...Your recipe URL (optional)

Parameters

hintegeroptional

Hours component of the duration. Integer between 0 and 23. Defaults to 0 if omitted.

mintegeroptional

Minutes component of the duration. Integer between 0 and 59. Defaults to 0 if omitted.

sintegeroptional

Seconds component of the duration. Integer between 0 and 59. Defaults to 0 if omitted.

tstringrequired

Timer name, shown in the notification alert and on the timer page. URL-encode the value — spaces become %20 or +. Maximum 60 characters. Example: t=Pasta or t=Roast%20Chicken.

srcURLoptional

Your recipe page URL. Must be a valid http:// or https:// URL. When present, the timer page shows a "Back to recipe" button. Useful when readers share or bookmark the timer URL directly.

At least one of h, m, or s must be non-zero. A total duration of 0 is invalid.

Examples

12-minute pasta timer

https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta

1 hour 30-minute roast chicken

https://recipetimer.app/t?h=1&m=30&s=0&t=Roast%20Chicken

45-second rest (sous vide plating)

https://recipetimer.app/t?h=0&m=0&s=45&t=Rest

12-minute pasta with back link

https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta&src=https://example.com/pasta-recipe

Building URLs in code

Use your language's URL-building utilities to ensure proper encoding:

JavaScript

const url = new URL('https://recipetimer.app/t')
url.searchParams.set('h', '0')
url.searchParams.set('m', '12')
url.searchParams.set('s', '0')
url.searchParams.set('t', 'Pasta')
url.searchParams.set('src', 'https://yoursite.com/recipe')
// → https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta&src=https%3A%2F%2F...

Python

from urllib.parse import urlencode
params = {'h': 0, 'm': 12, 's': 0, 't': 'Pasta', 'src': 'https://yoursite.com/recipe'}
url = 'https://recipetimer.app/t?' + urlencode(params)
# → https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta&src=https%3A%2F%2F...

Notes

  • URLs never expire. A link generated today works indefinitely. On the free tier, the duration is baked into the URL — if you change the recipe, generate a new link.
  • Indie plan persistent links use a UUID path (/t/<uuid>) instead of query parameters. The duration can be updated from the dashboard without changing the URL in your recipe.
  • The timer name (t) appears in the push notification. Keep it short and specific — “Pasta” is better than “Step 3”.

Tips & tricks

Send readers back to the exact step, not the top of the page

Recipe pages are long. When a timer fires and a reader taps the notification, the src link takes them back to your recipe — but by default they land at the top and have to scroll to find their place. Adding an anchor to src drops them exactly where the timer was.

1. Add an id to the step in your recipe HTML

<p id="pasta-timer">
  Cook for 12 minutes, stirring occasionally.
  <a href="https://recipetimer.app/t?...">⏱ Start timer →</a>
</p>

2. Add the anchor to your src URL

https://recipetimer.app/t?h=0&m=12&s=0&t=Pasta&src=https://yoursite.com/pasta-recipe%23pasta-timer

The # must be URL-encoded as %23 inside a query parameter. JavaScript's URL API handles this automatically — see the code examples above.

In JavaScript

const url = new URL('https://recipetimer.app/t')
url.searchParams.set('h', '0')
url.searchParams.set('m', '12')
url.searchParams.set('s', '0')
url.searchParams.set('t', 'Pasta')
// The # is encoded automatically — no manual %23 needed
url.searchParams.set('src', 'https://yoursite.com/pasta-recipe#pasta-timer')
// → ...&src=https%3A%2F%2Fyoursite.com%2Fpasta-recipe%23pasta-timer

Convention tip: Use a consistent prefix for your timer anchor IDs, such as timer-pasta or step-pasta. This keeps your HTML predictable when you have multiple timers on one page.

Next steps