Logo

Docs

Vleer API

Downloads, updates and telemetry at api.vleer.app

The Vleer API powers the parts of Vleer that need a server. Metadata lives in its own section: see OpenMusicMetadata.

https://api.vleer.app
PathDescription
/metadata/v1OpenMusicMetadata
/download/v1Download redirect
/update/v1/checkUpdate check
/telemetry/v1Telemetry

GET / returns Healthy.

Conventions

  • Requests are rate limited per client IP, 20 requests per second. Exceeding it returns 429. Some endpoints have stricter limits, noted below.
  • Request bodies are limited to 64 KiB.
  • Download and update errors use the same JSON shape as OpenMusicMetadata. Rate limit errors (429) are plain text, and telemetry responds with a bare status code, except 400 which has a plain text message.
  • CORS is restricted to an allowlist of origins. Use the API from a server or app, not from arbitrary websites.

Download

Redirects to the latest release asset for an operating system and architecture.

GET /download/v1?os=linux&arch=x86_64
ParameterDescription
osmacos, windows or linux. Also accepts mac, osx, darwin and win
archaarch64 or x86_64. Also accepts arm64, arm, x64, amd64 and x86-64
nightlytrue for the latest nightly build instead of the latest stable release

Responds with 302 and a Location header pointing at the file, and Cache-Control: no-store. The file is a .dmg on macOS, an .msi on Windows and an AppImage on Linux.

StatusWhen
400Unsupported os or arch
404No release asset for this OS and architecture
502The release listing could not be loaded

Update Check

Used by Vleer to find new versions.

GET /update/v1/check
GET /update/v1/check?nightly=true
{
  "version": "0.1.0",
  "pub_date": "2026-01-01",
  "notes_url": "https://github.com/vleerapp/vleer/releases/tag/v0.1.0",
  "platforms": {
    "linux-x86_64": {
      "url": "https://vleer-releases.objects.eplg.cloud/release/Vleer-0.1.0-x86_64.tar.gz",
      "size": 12345678
    }
  }
}

platforms has an entry per available build: macos-aarch64, macos-x86_64, windows-aarch64, windows-x86_64, linux-aarch64 and linux-x86_64. The aliases macos, windows and linux point at the Apple silicon, x64 and x64 builds. Nightly versions look like 0.1.0-nightly.20260101.1, and their notes_url points at the nightly workflow.

Results are cached for 60 seconds. Returns 404 if there is no release or no assets, and 502 if the release data can't be loaded.

Telemetry

Opt-in. Vleer only sends this when privacy.telemetry is enabled in the configuration.

POST /telemetry/v1
Content-Type: application/json
{
  "user_id": "0b1c1f6e-5a64-4f56-9c3a-2a7f8f0f3c11",
  "app_version": "0.1.0",
  "os": "Linux",
  "song_count": 1234
}
FieldDescription
user_idRandom UUID generated on first launch
app_versionX.Y.Z, or X.Y.Z-nightly.YYYYMMDD.N for nightly builds
osLinux, macOS or Windows
song_countNumber of songs in your library, 0 or more

Returns 200 on success and 400 for an invalid body. A user_id can submit at most 10 times per day (429) and can't change its os (422). Submissions are limited to one request per 2 seconds per IP.

The aggregated results are public at vleer.app/stats.

On this page