Windy plugin extends functionality of Windy.com. They are developed in js and published as npm packages. Your Hello World will be running in less than 5 minutes.
ECMWF contains airData.header.modelElevation but the other models don't have it. There's only airData.header.elevation which is the real elevation of the place and it could be off by 500 meters or more from the average elevation of the triangle considered by the model (e.g. in mountains). This makes sounding unusable with these models because we know the ground temperature (temp-surface) but we don't know where the surface is. There's no header.modelElevation and data['gh-surface'] contains only null.
Can we please get modelElevation for the other models too? I believe it must be somewhere otherwise the *-surface values wouldn't make sense.
There is a trial available, so you can see if it suits your needs.