Skip to content

Deep Links

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.

RouteDestination
game/newNew 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}/calculatorOpen game and present the calculator sheet
game/{uuid}/leaderboardOpen game and present the leaderboard sheet
game/{uuid}/historyOpen game and present score history
game/{uuid}/shareOpen game and present the share sheet
game/{uuid}/editOpen game and present the edit form
game/{uuid}/tvPush the game to the TV. ?variant=classic|competitive|cozyLight|cozyDark picks a theme.
game/{uuid}/notesOpen game and present the memories sheet
game/{uuid}/notes/newOpen game and present the memory capture sheet
game/{uuid}/celebrateOpen game and play the winner celebration. ?variant=... for the TV scene.
game/{uuid}/rematchCreate a rematch from this game
gamesGames list. ?filter=playing or ?filter=finished.
resumeResume the most recent in-progress game
RouteDestination
personasPersona library
persona/newNew persona. ?kind=player|team.
persona/{name}Edit persona by display name
persona/{name}/statsPersona stats
persona/id/{uuid}Edit persona by stable ID — locale-stable across renames
RouteDestination
templatesCustom game template library
templates/newNew custom template
templates/{uuid}Edit custom template
categoriesCategory template library
categories/newNew category template
categories/{uuid}Edit category template
RouteDestination
collection/newNew collection
collection/pickerCollection picker sheet
collection/{uuid}Open a collection
RouteDestination
calendarCalendar at the default zoom
calendar/yearCalendar zoomed to year
calendar/monthCalendar zoomed to month
calendar/weekCalendar zoomed to week
calendar/date/{YYYY-MM-DD}Calendar centred on a specific date
journeyYour Journey
RouteDestination
paywallPaywall sheet
settingsSettings root
settings/soundsSound settings
settings/sounds/{event}Per-event sound picker
settings/sounds/recordCustom sound recorder
settings/appiconApp icon picker
settings/tv-displayTV display theme picker
settings/syncSync status
settings/pinKids Mode PIN entry
settings/deletedRecently Deleted
settings/backupBackup overview
settings/backup/listBackup snapshot list
settings/reportReport an Issue
settings/report/submittedSubmitted 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.
Round 48 of 48