{"GET /doc":{"description":"List all routes and their doc text."},"GET /server_status":{"description":"The current server status and a message to be displayed to the users.","example":"https://api.laut.fm/server_status","parameters":{}},"GET /time":{"description":"The server time","example":"https://api.laut.fm/time","parameters":{}},"GET /letters":{"description":"All available starting-letters of the stations.","example":"https://api.laut.fm/letters","parameters":{}},"GET /genres":{"description":"All available genres","example":"https://api.laut.fm/genres","parameters":{}},"GET /station_names":{"description":"The names of all stations.","order":"Alphabetically ascending","example":"https://api.laut.fm/station_names","parameters":{}},"GET /listeners":{"description":"The listeners of all stations.","order":"By number of listener descending","example":"https://api.laut.fm/listeners","parameters":{}},"GET /stations/live":{"description":"A list of all stations sending live at the moment.","order":"Alphabetically","example":"https://api.laut.fm/stations/live","parameters":{}},"GET /stations/recommendations":{"description":"A list recommendations","example":"https://api.laut.fm/stations/recommendations","parameters":{},"optional_parameters":{"favorites":"[,a-z0-9_-]","recent":"[,a-z0-9_-]"}},"GET /song_change.stream.json":{"description":"All occuring song changes as continous stream of linebreak separated json documents.","example":"https://api.laut.fm/song_change.stream.json"},"GET /song_change.ws.json":{"description":"All occuring song changes as continous websocket stream of json documents.","example1":"ws://api.laut.fm/song_change.ws.json","examplei2":"var connection = new WebSocket(\"ws://api.laut.fm/song_change.ws.json\");"},"GET /song_change.chunk.json":{"description":"The last ~50 song changes as linebreak separated json documents.","example":"https://api.laut.fm/song_change.chunk.json"},"GET /stations":{"description":"All stations.","order":"By position ascending or by distance to given geolocation parameters.","pagination":"Supports {limit} and {offset} parameters. Pagination metadata is only returned if {offset} is given. In that case, the actual result is in the \"items\" key of the json result.","geolocation":"Supports {lat} and {lng} parameters (both must be given). If geolocation parameters are given the result is sorted by distance to the given location.","example1":"https://api.laut.fm/stations","example2":"https://api.laut.fm/stations?limit=10","example3":"https://api.laut.fm/stations?limit=10&offset=5","example4":"https://api.laut.fm/stations?limit=10&lat=47.6779&lng=9.17324","parameters":{},"optional_parameters":{"limit":"\\d+","offset":"\\d+","lat":"[\\.\\d]+","lng":"[\\.\\d]+"}},"GET /stations/letter/{letter}":{"description":"All stations beginning with the certain letter.","order":"Alphabetically ascending or by distance to given geolocation parameters.","pagination":"Supports {limit} and {offset} parameters. Pagination metadata is only returned if {offset} is given. In that case, the actual result is in the \"items\" key of the json result.","geolocation":"Supports {lat} and {lng} parameters (both must be given). If geolocation parameters are given the result is sorted by distance to the given location.","example1":"https://api.laut.fm/stations/letter/e","example2":"https://api.laut.fm/stations/letter/e?limit=10","example3":"https://api.laut.fm/stations/letter/e?limit=10&offset=5","example4":"https://api.laut.fm/stations/letter/e?limit=10&lat=47.6779&lng=9.17324","available_letters":"https://api.laut.fm/letters","parameters":{"letter":"[a-z]"},"optional_parameters":{"limit":"\\d+","offset":"\\d+","lat":"[\\.\\d]+","lng":"[\\.\\d]+"}},"GET /stations/numbers":{"description":"All stations beginning with a number.","order":"By number ascending or by distance to given geolocation parameters.","pagination":"Supports {limit} and {offset} parameters. Pagination metadata is only returned if {offset} is given. In that case, the actual result is in the \"items\" key of the json result.","geolocation":"Supports {lat} and {lng} parameters (both must be given). If geolocation parameters are given the result is sorted by distance to the given location.","example1":"https://api.laut.fm/stations/numbers","example2":"https://api.laut.fm/stations/numbers?limit=10","example3":"https://api.laut.fm/stations/numbers?limit=10&offset=5","example4":"https://api.laut.fm/stations/numbers?limit=10&lat=47.6779&lng=9.17324","parameters":{},"optional_parameters":{"limit":"\\d+","offset":"\\d+","lat":"[\\.\\d]+","lng":"[\\.\\d]+"}},"GET /stations/genre/{genre}":{"description":"All stations of a certain genre.","order":"By genre-number weighted position ascending or by distance to given geolocation parameters.","pagination":"Supports {limit} and {offset} parameters. Pagination metadata is only returned if {offset} is given. In that case, the actual result is in the \"items\" key of the json result.","geolocation":"Supports {lat} and {lng} parameters (both must be given). If geolocation parameters are given the result is sorted by distance to the given location.","example1":"https://api.laut.fm/stations/genre/Rock","example2":"https://api.laut.fm/stations/genre/Rock?limit=10","example3":"https://api.laut.fm/stations/genre/Rock?limit=10&offset=5","example4":"https://api.laut.fm/stations/genre/Rock?limit=10&lat=47.6779&lng=9.17324","available_genres":"https://api.laut.fm/genres","parameters":{"genre":"[\\w\\d\\- &]+"},"optional_parameters":{"limit":"\\d+","offset":"\\d+","lat":"[\\.\\d]+","lng":"[\\.\\d]+"}},"GET /stations/{comma_separated_station_names}":{"description":"Details about the given stations. Inactive stations are excluded.","order":"As given or by distance to given geolocation parameters.","geolocation":"Supports {lat} and {lng} parameters (both must be given). If geolocation parameters are given the result is sorted by distance to the given location.","example1":"https://api.laut.fm/stations/eins,ende,best_of_80s","example2":"https://api.laut.fm/stations/eins,ende,best_of_80s&lat=47.6779&lng=9.17324","parameters":{},"optional_parameters":{"lat":"[\\.\\d]+","lng":"[\\.\\d]+"}},"GET /station/{station_name}":{"description":"The basic info about a single station.","example":"https://api.laut.fm/station/ende","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/current_song":{"description":"The currently playing song of a single station.","example":"https://api.laut.fm/station/eins/current_song","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/last_songs":{"description":"The 10 last songs of a single station.","example":"https://api.laut.fm/station/eins/last_songs","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/schedule":{"description":"The schedule of a single station.","example":"https://api.laut.fm/station/ende/schedule","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/playlists":{"description":"The schedule of a single station grouped by playlists.","example":"https://api.laut.fm/station/ende/playlists","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/listeners":{"description":"The listener count of a single station.","example":"https://api.laut.fm/station/eins/listeners","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET /station/{station_name}/next_artists":{"description":"Next artists of a single station. Information may be inacurate or plainly wrong right before a playlist or schedule change.","example":"https://api.laut.fm/station/eins/next_artists","parameters":{"station_name":"[\\w\\d_\\-]+"}},"GET (?-mix:\\/station\\/([\\w\\d_\\-]+)\\/images\\/([\\w\\d_\\-]+))":{"description":"The images of a single station as redirects to the right asset. For convinience.","example":"https://api.laut.fm/station/ende/images/:type","parameters":{"station_name":"[\\w\\d_\\-]+","type":"[\\w\\d_\\-]+"}}}