vRealize Orchestrator is moving fast towards a 100% REST API interface implementation. But as of today, its not there yet. There are still some functions which are not accessible and - more important - some ‘hidden’ services. This post is just a reminder to myself and - if you didn’t know this yet a heads-up for you - that there is more API then the eye can see.
Swagger-UI in vRealize Orchestrator
As of vRealize Orchestrator 6.x the Swagger-UI was implemented in the product. By now VMware has it’s own project called Platypus which is based on Swagger. For everyone not knowing how the Swagger-UI in vRealize Orchestrator looks and how to use it I recommend reading the blog-post about it on vcoteam.info.
For everyone else: let’s embrace the possible future of all VMware products shipping with a full REST API and a proper Swagger based documentation of it. This is a big thing for everyone serious in SDDC automation. At the end your automation can only be as good as the sum of all the APIs of all the products in your process-stack. TL;DR: bad APIs and bad API docs are responsible for 99% of all kittens killed.
The two API endpoints or vRO 7.x
So I guess by now everyone is aware of the vRealize Orchestrator REST API which is located at
https://your-vro-host:8281/vco/api and it’s Swagger-UI based API documentation which is available at
https://your-vro-host:8281/vco/api/docs/. There are a lot of services you can call. E.g. it’s totally possible to call workflows and even get a presentation view of the workflow, which makes it possible to implement custom UIs that use vRealize Orchestrator as your workflow backend.
While browsing the methods some time ago I realized that the listed methods are methods to control the workflow services available on port 8281. The control-center and its methods are not available there. So, e.g. there is no method to trigger a vRO-service restart. D’oh.
So, I started digging. And look what I found: another endpoint that provides us with exactly that functionality located at
https://your-vro-host:8283/vco-controlcenter/api and even a JSON documentation (not yet styled with Swagger) at
I haven’t found any documentation on this and I believe that this is a work-in-progress and thus is not supposed to be used yet. I decided to use it anyways since I needed its functions and I guess, as long as you’re aware that the API might change with any update and you’re willing to update your code then, it’s “safe for use”.