That's basically what the entire web is: a data service that describes the UI to the front end. It wouldn't make sense to create (from scratch) an entirely new protocol/language for an API to create a UI when such a thing already exists.
And if you don't have a description of the UI that comes to the client along with the API payload, then how can the client know how to render it? It's too ambiguous -- data schemas are not deterministic when it comes to UIs. That's why HTML/XML are not sufficient for rendering UIs. You need CSS to tell the browser how it looks and JavaScript to tell the browser how it behaves.
The best you could do is an API explorer. But maybe React + Relay would get you closer to what you want.