URL HOOKS

Hook Anatomy

Every ExtraTime shortcut is just a normal page URL with a few parts. Learn the pieces and you can read — or hand-write — any hook, then bookmark it on any device.

Anatomy of a hook URL

A fully-loaded hook has three parts. Here's a random Italy quiz on a per-question timer with a custom difficulty count:

/games/quiz/italy?timer=per_question&easy=10#random-quiz
  • /games/quiz/italy — the path. Which game, and its scope (here, the Italy category). Open it on its own and the page just loads normally.
  • ?timer=per_question&easy=10 — the query params. Optional tuning for hooks that accept it (timer mode, difficulty counts). Always placed before the #.
  • #random-quiz — the hash. The hook itself. On page load ExtraTime reads it, fires the matching action, and clears it so a reload doesn't fire it twice.

Params go before the hash

This is the one rule that trips people up. Query params must come before the #:

✓ Correct — params, then hash
/games/quiz/italy?timer=per_question#random-quiz
Open
✗ Broken — params after the hash
/games/quiz/italy#random-quiz?timer=per_question

Everything after the # is the URL's fragment — the browser keeps it in the page, never sending it to the server. Put params after the # and they become part of the fragment, so the hook name no longer matches and nothing fires (a sign-in-only hook would also skip its check). Keep them before it and they ride along safely.

Signing in

Some hooks are account-only (for example #random-quiz). You'll meet the sign-in in one of two ways, and either way you end up exactly where you were headed:

  • From a bookmark or shared link: you're taken to the sign-in page, and once you're in you land right back on the hook — it fires automatically, with the full URL (params and all) preserved.
  • From inside the app (clicking Open on a docs example or a homepage card): a dismissible sign-in popup appears instead of a full-page redirect; sign in and it continues.

Open hooks like #daily-quiz never prompt — guests can use them straight away.

The loading overlay

When a hook fires, a brief overlay tells you exactly what's starting — e.g. “Starting Random Quiz — Italy · Per question” — in that game's colour, so a deep link never looks like a blank page. It clears the moment the game loads. If it ever lingers (a rare hiccup), tap it or press Esc to dismiss.

Bookmark it — desktop & mobile

A hook is only as handy as how fast you can reach it. Save it wherever your shortcuts live:

  • Desktop: press Ctrl/ + D, or drag the link onto your bookmarks bar. Every hook example on these pages has Copy and Bookmark buttons to make this one click.
  • iPhone (Safari): open the URL, tap Share, then Add to Home Screen — it becomes a one-tap icon.
  • Android (Chrome): open the URL, tap the menu, then Add to Home screen.

Sharing a gated hook with a friend? It works for them too — they'll just be asked to sign in first, since random-quiz generation is account-only.

Build one without the theory

The Hook Builder assembles a correct URL for you — pick a game and action, tune the options, copy the link. Or browse every hook in the URL Hooks reference.

Last updated ~2 min read