This isn’t a bad idea at all, several other customers are doing it too. We haven’t put much energy into documenting the api or making it friendly to use, but it’ll get the job done and is always improving. It’s a GraphQL api with a playground you can explore at GraphQL Playground.
Flyctl uses it, so checkout the go code for a reference.
Also, you’ll likely want to isolate customer apps by putting them on different networks, otherwise they can connect to each other. We’ll be improving support for this in the coming weeks.