As some people pointed out here, this is basically Json RPC. There is absolutely nothing wrong with structuring your API on this way as long as you are aware of the tradeoffs you’re making.
Another point you are making that I would challenge though is API serving fronted vs backend distinction.
Apart from a very specific scenario where you’re trying to quickly build a prototype frontend, you should avoid making API driven by it.
The backend/fronted distinction is made to isolate rarely changing underlying data model from, usually short lived and constantly mutating, interface that is being exposed to your users. The more coupling you have between those, the more expensive it is to maintain and extend your application.