Octopus Deploy has had a RESTful HTTP API for some time, available at:
http://<your-octopus-server>/api
The API was built primarily to power Octo.exe, a command line tool for creating and deploying releases. Most of the existing API is read-only, with the exception of machines, releases and deployments. When we introduced new features to the Octopus UI, they didn't always make it into the API; it's fair to say the API was really a second class citizen.
For Octopus Deploy 2.0, we're going to make some big changes to our UI, which I blogged about in UI design for eventual consistency. I want to make sure that Octopus feels fast and fluid even on very large installations. In addition, we often get feature requests to be able to do things in the API that we currently can only do via the UI.
So for the 2.0 release, we're going to make our API a first class citizen. The UI will leverage the API; this means that most of the interactions in the UI will make asynchronous requests via the API rather than posting directly to MVC controllers.
Since the API is getting so much attention, we're also going to document it properly as we rebuild it. To that end I've created a project on GitHub:
OctopusDeploy-API on GitHub
The project is fairly sparse currently, but you'll find a section on authentication and the way we use links to navigate the API.
If you're building on top of the Octopus API, or plan to, I'd suggest following this repository and providing feedback through issues/pull requests in the documentation.