There isn't any mechanism to get the current content of a berth through the Open Data platform. The only way you can do it is to set something up to record the stream of messages and keep a state table up-to-date. From there, you can easily get the current content of a berth, or multiple berths, or all berths reported via a particular SMART-connected train describer, etc.
The SG and SH messages are actually generated in response to a 'base scan request' by a system at Network Rail which sends out the request every few hours. In theory, the same could be done for berths - the command exists and is defined in the protocol - but there are going to be valid reasons why it wasn't done - e.g. risk of overloading smaller-capacity links, processing overhead on the train describer, etc.
OpenTrainTimes Ltd. registered in England and Wales, company no. 09504022.
Registered office: Suite 1-3, Hop Exchange, 24 Southwark Street, London SE1 1TY