Roon extension - http APIs

Hi all,

I have uploaded a set of roon APIs that are called by HTTP protocol which includes Transport, browse, and Image APIs.

You can try it from the link below, at:

I have also created small pages to show how the APIs are called which include:

  • mini player (with volume where available)
  • browser (with search and pagination)
  • timer (for play/pause at a later timer)

Besides these pages, I have also managed to create iOS iPhone and Apple Watch swift apps and widget as well as using iOS’s Workflow app to create a widget.

The link to the workflow is:



Can you write an idiot proff usergude :grinning:

Pictures is important.
The iOS Workflow app should be able to give a link as well i think.

There exist already one quite nice extention with the workflow app.

I will look into this. I would love to add controls to Control4.

Hi All,

I have updated the readme file with the calls for each APIs.

Hi @cgw,

Let me know if you have any questions / would like to have other APIs

Hi @R1200CL,

The Link for the workflow is:

Here’s the picture of one of the pages I made (it’s the player one)

The dropdown at the top of the page is a list of zones available.
When selecting a zone, it will show you (if any) the current track/album information for that zone.
And for those zones that you can change the volume there is a volume slider.


1 Like

@St0g1e Thank you so much. Up and running in no time!

I been wanting something like this for some time now!

Hi @Tech_Whisky_Lab,

Thank you for trying it out.
Let me know if you’d like to have other functionalities as well.


1 Like

I really like this extension, thanks for sharing it. I’m going to have a play with it in a native android app. I’d love to see support for web sockets, that could be really cool, since the api can be quite chatty if you want to update the ui in real time.

@St0g1e Real time update of the zone playing would be nice! :smiley:

Hi All,

I have updated the player page to update the information every 2 seconds.
If you’d like to change the update interval, you can go to:
htmls/player.js and update the timeInterval value (it’s in milliseconds)

Hi @Stuart_Simmons I agree with web sockets, we can have realtime UI update and can create a stand alone player

Hi @Tech_Whisky_Lab, now you don’t have to click refresh to update the information.


1 Like


[code]root@darkdreams:/roon_projects/roon-remote# git pull .
From .

  • branch HEAD -> FETCH_HEAD
    Already up-to-date.



Could you please go to the page at and see if you can see that controller and html directories are updated in the last couple of hours?

I just did a pull and it’s giving me the latest.




I was in the wrong dir!

root@darkdreams:/roon_projects/roon-extension-http-api# git pull remote: Counting objects: 14, done. remote: Compressing objects: 100% (5/5), done. remote: Total 14 (delta 7), reused 14 (delta 7), pack-reused 0 Unpacking objects: 100% (14/14), done. From 0af8210..647ce3a master -> origin/master Updating 0af8210..647ce3a Fast-forward .gitignore | 2 +- | 4 ---- controllers/roonAPI.js | 8 ++++---- htmls/player.js | 21 ++++++++++++++++++++- 4 files changed, 25 insertions(+), 10 deletions(-) root@darkdreams:/roon_projects/roon-extension-http-api#

All good now. Thanks again!

Great, I will take a look at it later.
Maybe I can use/reuse some of it to create a small app for the LaMetric Time, which also should display only the playing track.+ Artist.

1 Like

Hi @Stuart_Simmons,

I’ve created a websocket implementation as well.
I just uploaded it to GitHub at:

There are information on the apis I’ve created and used on the Readme file.

Let me know if this is what you were after.

This websocket implementation might be better for you as it updates as soon as Roon api updates the information as opposed to every 2 seconds on the http.

The only downside of this is that it does not support iOS’ workflow.


1 Like

Hi @crieke,

Let me know if you’d like to have other APIs.
I know I have not created all of Roon’s apis for the HTTP one.


Hi @St0g1e,

This looks great. I’ll have a tinker with it this weekend.

Thanks a lot for sharing.

I will Give it a try when I get home!

Thanks again!

@St0g1e All working well here!

@St0g1e Pause does not work. Play does. As soon as I want to pause. It wont respond.

Hi @Tech_Whisky_Lab,

Is this for the http apis?
Could you please send me the zone list from the output where you typed in the “node .” When this happens?

There is a “is_pause_allowed” flag that I don’t use. You can try stop instead. Or I can update the code to use this flag and call stop instead.