Files
zkldi_Tachi/old-docs/docs/api/routes/scores.md
T
zk e363bd2532 docs: migrate from mkdocs to mdbook (#1558)
* docs: migrate from mkdocs to mdbook

- Rename old mkdocs docs/ to old-docs/ for reference
- Set up new docs/ with mdbook (book.toml + src/ tree)
- Mirror full nav structure from mkdocs.yml into SUMMARY.md
- Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes
- Import Justfile-docs from root Justfile
- Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action
  to install mdbook, split into separate build + deploy jobs, PR builds
  run the check step too

* ci(docs): pin actions to SHAs, install mdbook via release binary

* ci(docs): install mdbook from apt instead of curling a release binary

* dev: replace mkdocs python stack with mdbook in dev image

* ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI

* docs: fix duplicate file entries in SUMMARY.md

* docs: remove docs-install recipe

* docs: remove site-url from book.toml to fix asset loading

* dev: install mdbook from upstream release binary, not Debian apt

The Debian package (0.4.x+ds) strips bundled font assets, leaving the
built site without fonts/fonts.css. Use the upstream tarball (same as CI)
so the theme is complete. Handles x86_64 and aarch64.

* docs: vendor mdbook tarballs in dev/mdbook/, install from there

Dockerfile.dev uses COPY + tar to install the right arch at build time.
CI extracts the x86_64 tarball directly from the checkout.
No network access required for either — and no stripped-fonts Debian package.

* fix: unwritten
2026-05-22 20:43:07 +01:00

2.5 KiB

Score Endpoints

!!! note Scores are not personal bests. For more information on the distinction, see PBs and Scores.


Retrieve specific score.

GET /api/v1/scores/:scoreID

Parameters

| Property | Type | Description | | :: | :: | :: | | getRelated | Presence | If present, also return the song and chart for this score document. |

Response

| Property | Type | Description | | :: | :: | :: | | score | ScoreDocument | The score document with this scoreID. | | song (Conditional) | SongDocument | If getRelated is set, then this is the song the score belongs to. | | chart (Conditional) | ChartDocument | Same as above, but for the chart document. |

Example

Request

GET /api/v1/scores/Re7b00261b1d3ba8e5c9ee4e76e77ea9f07d9493b

Response

{
	"score": {
		"scoreID": "Re7b00261b1d3ba8e5c9ee4e76e77ea9f07d9493b",
		"songID": 1,
		"chartID": "some_chart_ID"
	},
	"song": {
		"id": 1,
		"title": "5.1.1."
	},
	"chart": {
		"chartID": "some_chartID",
		"songID": 1
	}
}

Modify a score document.

PATCH /api/v1/scores/:scoreID

Permissions

  • customise_score
  • Must be the owner of this score.

Parameters

| Property | Type | Description | | :: | :: | :: | | comment (Optional) | Null or String | A string between 1 and 120 characters, or null. If null, the score will have its comment unset. If not, the comment for this score will be set to its contents. If the key is not present, no change will be made. | | highlight (Optional) | Boolean | Whether this score was a highlight or not. If this field is not present, no change will be made to the highlight status. |

!!! info Although all of these fields are optional, providing none of them is a 400 failure.

Response

| Property | Type | Description | | :: | :: | :: | | <body> | ScoreDocument | The new score document.

Example

Request

PATCH /api/v1/scores/Re7b00261b1d3ba8e5c9ee4e76e77ea9f07d9493b
{
	"comment": "new comment"
}

Response

{
	"scoreID": "Re7b00261b1d3ba8e5c9ee4e76e77ea9f07d9493b",
	"comment": "new comment",
	"highlighted": false,
	// etc..
}


Delete a score.

DELETE /api/v1/scores/:scoreID

!!! info Deleting a score will result in profile recalculations and PB updates.

Permissions

  • delete_score
  • Must be the owner of this score (Or a server administrator).

Parameters

None.

Response

None. (Empty Object)