Keeping Score! accepts deep links from three URL families. They’re the same endpoints used internally by the app’s widgets and Shortcuts, and they’re stable across releases.
- Custom scheme:
keepingscore://<host>/<path>
- Universal links:
https://www.keepingscore.app/open/<host>/<path>
- Short universal links:
https://open.keepingscore.app/open/<host>/<path>
A locale prefix in universal links is stripped automatically — https://www.keepingscore.app/fr/open/games is treated identically to https://www.keepingscore.app/open/games.
| Route | Destination |
|---|
game/new | New game form. ?kids=true starts a Kids game; ?scrollTo=rules or ?scrollTo=winConditionSection jumps to a section. |
game/{uuid} | Open a specific game |
game/{uuid}/calculator | Open game and present the calculator sheet |
game/{uuid}/leaderboard | Open game and present the leaderboard sheet |
game/{uuid}/history | Open game and present score history |
game/{uuid}/share | Open game and present the share sheet |
game/{uuid}/edit | Open game and present the edit form |
game/{uuid}/tv | Push the game to the TV. ?variant=classic|competitive|cozyLight|cozyDark picks a theme. |
game/{uuid}/notes | Open game and present the memories sheet |
game/{uuid}/notes/new | Open game and present the memory capture sheet |
game/{uuid}/celebrate | Open game and play the winner celebration. ?variant=... for the TV scene. |
game/{uuid}/rematch | Create a rematch from this game |
games | Games list. ?filter=playing or ?filter=finished. |
resume | Resume the most recent in-progress game |
| Route | Destination |
|---|
personas | Persona library |
persona/new | New persona. ?kind=player|team. |
persona/{name} | Edit persona by display name |
persona/{name}/stats | Persona stats |
persona/id/{uuid} | Edit persona by stable ID — locale-stable across renames |
| Route | Destination |
|---|
templates | Custom game template library |
templates/new | New custom template |
templates/{uuid} | Edit custom template |
categories | Category template library |
categories/new | New category template |
categories/{uuid} | Edit category template |
| Route | Destination |
|---|
collection/new | New collection |
collection/picker | Collection picker sheet |
collection/{uuid} | Open a collection |
| Route | Destination |
|---|
calendar | Calendar at the default zoom |
calendar/year | Calendar zoomed to year |
calendar/month | Calendar zoomed to month |
calendar/week | Calendar zoomed to week |
calendar/date/{YYYY-MM-DD} | Calendar centred on a specific date |
journey | Your Journey |
| Route | Destination |
|---|
paywall | Paywall sheet |
settings | Settings root |
settings/sounds | Sound settings |
settings/sounds/{event} | Per-event sound picker |
settings/sounds/record | Custom sound recorder |
settings/appicon | App icon picker |
settings/tv-display | TV display theme picker |
settings/sync | Sync status |
settings/pin | Kids Mode PIN entry |
settings/deleted | Recently Deleted |
settings/backup | Backup overview |
settings/backup/list | Backup snapshot list |
settings/report | Report an Issue |
settings/report/submitted | Submitted reports list |
settings/report/submitted/{refID} | Specific submitted report detail |
Long-press the app icon on the home screen for two Quick Actions:
- New Game (
NewGameAction)
- Resume Game (
ResumeGameAction)
The app also publishes the app.keepingscore.KeepingScore.viewGame NSUserActivity type for Handoff.
- Use
https://open.keepingscore.app/open/... rather than the custom scheme inside a Shortcut — universal links survive across iCloud-synced Shortcuts even if a device hasn’t yet installed the app.
- The
resume route is the most useful one to wire to a home-screen widget — one tap returns to the game you were last playing.
- For TV-driven game nights, build a Shortcut that opens
game/{uuid}/tv?variant=competitive from a home-screen icon.