Skip to content

Version 1.0 API

Kun Deng edited this page Jul 18, 2019 · 12 revisions

Version 1.0 API

This page contains API documentation regarding version 1.0 if the API. For the sake of the examples I will use icarus-demo.com as the hostname and https. Though if you are using Icarus without a host name you can merely provide the IP address coupled with the port number.

API Categories

  • Authentication
  • Songs
  • Artists
  • Album
  • Genres
  • Year
  • Cover art

Authentication

Retrieving token

URI: https://icarus-demo.com/api/v1/login
Method: Post
Content type: application/json
Request body:

{
    "username":"usr",
    "password":"secret"
}

Response body:

{
    "id":1,
    "username":"usr",
    "token":"dsfsdfnisdnosnfwefh923hr329hf29fb293fhn20jf20f",
    "token_type":"Bearer",
    "expiration":8000
}

Songs

Uploading Song

URI: https://icarus-demo.com/api/v1/song/data
Method: Post
Content type: multipart/form-data
Authorization: Bearer token
File: @file=/path/to/song/you/wish/to/upload.mp3

Downloading Song

URI: https://icarus-demo.com/api/v1/song/data/id
Method: Get
Authorization: Bearer token

Delete Song

URL: https://icarus-demo.com/api/v1/song/id
Method: Delete
Authorization: Bearer token

Updating Song Metadata

URI: https://icarus-demo.com/api/v1/song/id
Method: Update
Authorization: Bearer token
Request body:

{
    "title":"updated title",
    "artist":"updated artist",
    "album":"updated album",
    "genre":"updated genre",
    "year":"updated year"
}

Retrieve Song Metadata

URI: https://icarus-demo.com/api/v1/song/id
Method: Get
Authorization: Bearer token
Response body:

{
    "title":"Song Title",
    "artist":"Artist or Band",
    "album":"Album Name",
    "genre":"Genre",
    "year":1970
}

Clone this wiki locally