---
url: https://milthm.cn/wiki/en/manual/technical-reference/deeplink.md
---
# Deep Links

Milthm supports deep links through `milt.hm` links and custom URL schemes.

## Supported URL Forms

Milthm accepts:

* `https://milt.hm/...`
* `http://milt.hm/...`
* The `milthm` custom scheme on all supported builds
* The `milthmintl` custom scheme on the Android Google Play build
* The `milthmcn` custom scheme on the Android TapTap build

For every registered custom scheme, Milthm accepts all three forms below. Scheme matching is case-insensitive.

* `scheme://path`
* `scheme:///path`
* `scheme:path`

For external sharing, prefer `https://milt.hm/...`; for cross-platform app-scheme links, prefer `milthm://...`.

For HTTP(S) input, only host `milt.hm` is accepted.

## Route Behavior

Some links navigate to a screen inside Milthm. Milthm does not interrupt gameplay, transfers, or PV playback for these
links.

Trailing slashes are accepted for routes that list both forms below.

Route paths and route parameter values are case-sensitive. Query parameter values are URL-decoded before use.

## Supported Routes

### `/index`

* No parameters.
* Starts or wakes Milthm only. This route does not navigate to a specific in-game screen.

**Examples:**

* <https://milt.hm/index>
* <milthm://index>

### `/songlist/:songpack`

Also accepts `/songlist/:songpack/`.

#### URL Param

| Name       | Required | Description |
|------------|----------|-------------|
| `songpack` | Yes      | Song pack identifier. Unknown identifiers are ignored. |

Supported song pack identifiers include:

* `All`
* `Chapter0`
* `Chapter1`
* `Chapter2`
* `Introduction`
* `SideStory1`
* `Single`
* `Garden`
* `Notanote`
* `RainWorld`
* `Electrode Core`
* `VoidReflection`

Values containing spaces must be URL-encoded when used as a path segment, for example `Electrode%20Core`.

#### Query Param

| Name | Required | Description |
|------|----------|-------------|
| `q`  | No       | Search query applied after opening the song list. See [Searching](https://milthm.cn/wiki/en/manual/technical-reference/searching.md) for syntax. Empty or missing `q` clears the search. |

**Description:** Opens the requested song pack and applies the optional search query. If `q` is present and non-blank, the
first visible search result is selected.

**Example:**

* <https://milt.hm/songlist/All?q=songid%3D3d466b94-8503-4b93-b39c-cd149c4fb760>

### `/garden`

Also accepts `/garden/`.

* No parameters.

**Description:** Opens the garden.

**Examples:**

* <https://milt.hm/garden>
* <milthm://garden>

### `/scores/:scoreId`

Also accepts `/scores/:scoreId/`.

#### URL Param

| Name      | Required | Description |
|-----------|----------|-------------|
| `scoreId` | Yes      | Online score ID. |

**Description:** Opens a shared score. Milkloud must be enabled and the user must be logged in. The game fetches the score
by ID, then opens the ranking view with that shared score. If the score cannot be loaded, an error message is shown.

**Example:**

* <https://milt.hm/scores/c917a015-1ae6-11f1-87f1-c25777d37a6f>
