maloja/API.md

2.5 KiB

The native Maloja API is reachable at /apis/mlj_1. Endpoints are listed on /api_explorer.

All endpoints return JSON data. POST request can be made with query string or form data arguments, but this is discouraged - JSON should be used whenever possible.

No application should ever rely on the non-existence of fields in the JSON data - i.e., additional fields can be added at any time without this being considered a breaking change. Existing fields should usually not be removed or changed, but it is always a good idea to add basic handling for missing fields.

Entity Structure

Whenever a list of entities is returned, they have the following fields:

Scrobble

Key Type Description
time Integer Timestamp of the Scrobble in UTC
track Mapping The track being scrobbled
duration Integer How long the track was played for in seconds
origin String Client that submitted the scrobble, or import source

Example

{
  "time": 1650684324,
  "track": {
    "artists": ["Jennie Kim","HyunA","LE","SunMi"],
    "title": "Wow Thing",
    "length":200
  },
  "duration": 196,
  "origin": "client:navidrome_desktop"
}

Track

Key Type Description
artists List The artists credited with the track
title String The title of the track
length Integer The full length of the track in seconds

Example

{
  "artists": ["Blackpink","Chou Tzuyu"],
  "title": "MORE",
  "length": 171
}

Artist

Artists are just represented as raw Strings.

Example

"Red Velvet"

General Structure

Most endpoints follow this structure:

Key Type Description
status String Status of the request. Can be success, ok, error, failure, no_operation
error Mapping Details about the error if one occured.
warnings List Any warnings that did not result in failure, but should be noted. Field is omitted if there are no warnings!
desc String Human-readable feedback. This can be shown directly to the user if desired.

Both errors and warnings have the following structure:

Key Type Description
type String Name of the error or warning type
value varies Specific data for this error or warning instance
desc String Human-readable error or warning description. This can be shown directly to the user if desired.