API index fragment
{
"schemaVersion": 1,
"kind": "apiIndex",
"apiVersion": "v1",
"latestRelease": {
"version": "0.17q",
"releasedAt": "2026-07-01",
"detail": {
"path": "/api/v1/releases/latest.json",
"url": "https://pvzvoyage.com/api/v1/releases/latest.json"
}
},
"locales": {
"default": "zh",
"supported": [
"zh",
"en"
]
},
"documentation": {
"en": {
"path": "/en/api-docs/",
"url": "https://pvzvoyage.com/en/api-docs/"
},
"zh": {
"path": "/zh/api-docs/",
"url": "https://pvzvoyage.com/zh/api-docs/"
},
"openapi": {
"path": "/api/openapi.json",
"url": "https://pvzvoyage.com/api/openapi.json"
}
},
"families": [
{
"key": "release",
"schemaVersions": [
1,
2
],
"endpoints": [
{
"id": "releases-latest",
"method": "GET",
"pathTemplate": "/api/v1/releases/latest.json",
"schemaVersion": 1
},
{
"id": "updates-latest",
"method": "GET",
"pathTemplate": "/api/v1/updates/latest.json",
"schemaVersion": 2
}
]
},
{
"key": "diy",
"schemaVersions": [
1
],
"endpoints": [
{
"id": "diy-levels-list",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/levels.json",
"schemaVersion": 1
},
{
"id": "diy-level-detail",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/levels/{public_id}.json",
"schemaVersion": 1
},
{
"id": "diy-level-analysis",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/levels/{public_id}/analysis.json",
"schemaVersion": 1
},
{
"id": "diy-level-download",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/levels/{public_id}/{sha256}/download.gdf",
"schemaVersion": 1
},
{
"id": "diy-level-icon",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/levels/{public_id}/{sha256}/icon",
"schemaVersion": 1
},
{
"id": "diy-runtime-config",
"method": "GET · HEAD",
"pathTemplate": "/api/v1/diy/runtime-config.json",
"schemaVersion": 1
},
{
"id": "diy-level-upload",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels",
"schemaVersion": 1
},
{
"id": "diy-owner-session",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels/{public_id}/owner/session",
"schemaVersion": 1
},
{
"id": "diy-owner-status",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels/{public_id}/owner/status",
"schemaVersion": 1
},
{
"id": "diy-owner-edit",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels/{public_id}/owner/edit",
"schemaVersion": 1
},
{
"id": "diy-owner-remove",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels/{public_id}/owner/remove",
"schemaVersion": 1
},
{
"id": "diy-owner-update",
"method": "POST",
"pathTemplate": "/api/v1/diy/levels/{public_id}/owner/update",
"schemaVersion": 1
}
]
}
]
}