Unfortunately most APIs like ours are not event driven; and therefore you will need a system polling both systems and keeping both up to date. Rather than use both APIs in a complex system just to get things to work I would suggest a different overall approach.
I would suggest an event driven system and only pulls information during an authenticated registration/logon event. This will also reduce load on both systems as you will not have something continually polling both systems, even when nothing is happening/no new users are registering.
If you setup a separate instance of freeradius as a radius proxy, you can then use rlm_perl to pull the information from your HMS. Thus you can use NAC in a Radius-Proxy configuration and that way send the room number as username and name as password to verify in your HMS.
if you use a polling system, there may be instances where that a user registers between polls and they will not have immediate access as the separate systems are not in sync.