Documentation for "sleep" interface and/or protocol

Is there a description for the “sleep” API or protocol? I would like to interface this to my audio systems but they are controlled by a dedicated machine, which just happens to be the machine hosting the Roon Core. Messages over a raw TCP/IP stream are especially convenient but I can probably manage anything that says, “I am sending audio to this zone”, and, “I am no longer sending audio to this zone.”

Thank you.


Hello @Brian_Lloyd,

You can find more information on the Roon API over at GitHub:

For documentation on standby controls, be sure to look over the transport control documentation.


The transport API, as mentioned by John, is used if you want to turn a zone/device into standby. If you want to implement standby for a certain device that isn’t Roon Ready or doesn’t support standby then you have to look into the source control API.

The transport API has generated documentation that can be found here. This is unfortunately not available for the source control API, so for that you have to check the API implementation and an extension that makes use of it (e.g. the Meridian extension).

I looked at the github repository but it emphasized javascript.

My Roon devices themselves are always on. They are all RPis running RoonBridge and driving good DACs optically (TOSLINK). It is the amps I need to turn on and off. The amps themselves are controlled by another program (Indigo). Indigo is easily extended (Python) and already has plug-ins to handle arbitrary data sent over either UDP or TCP. So, more than anything else, I just need a pointer to the protocol that Roon uses on the wire for control of external devices.

At this point “turn on” and “turn off” are sufficient. When I start playing a zone, if that zone requires an amp to be turned on then that just happens and I don’t have to bring up two apps simultaneously.

If Roon wants developers to make their devices “Roon Ready” it seems to me that there would be a clear protocol document that defines the messages that Roon sends and accepts. Nearly all new digital audio systems have Ethernet or WiFi for intercoonection. The messages on the wire are the standard that everyone needs to code to. That would be ecumenical. It would be OS and language independent.

Thank you for replying.

The API has a very low priority for the Roon team (based on the little time they spent on it over the last three years). So if you want to make the amp switching happen your best chances are to use the javascript API or look at one of the other bindings that were created by the community (there is one for Python).

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.