Generate an Octopus API key under user profile > API Keys in the Octopus web UI; use it in the 'X-Octopus-ApiKey: YOUR_API_KEY' header for all requests
Create a release by POST to '/api/{space-id}/releases' with body containing 'ProjectId', 'Version', and optionally 'SelectedPackages' array with package version overrides
Retrieve the 'Id' of the created release (e.g. 'Releases-123') from the response; then create a deployment by POST to '/api/{space-id}/deployments' with 'ReleaseId', 'EnvironmentId', and optionally 'TenantId'
Find 'EnvironmentId' values via GET '/api/{space-id}/environments' filtering by name; the ID format is typically 'Environments-N'
Monitor deployment progress via GET '/api/{space-id}/tasks/{taskId}' (the 'TaskId' is in the deployment response) checking 'State' and 'FinishedSuccessfully'
Known gotchas
Octopus spaces must be specified in the URL path; omitting '{space-id}' or using the wrong space returns resources from the default space (Spaces-1) silently, not an error
Release version strings must follow the project's versioning scheme (e.g. SemVer); using a version that already exists or an invalid format causes a 400 error
Lifecycle phase progression is enforced: you cannot deploy to production if the lifecycle requires a prior successful deployment to staging — the API will return a validation error
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp