Developer portal
How to drive this platform from another program: create an application, deploy a compose file to it, and read back the address the result answers on.
This is the contract for a machine consumer — a service that manages applications on somebody's behalf, continuously, with no person at the keyboard for any given call. Everything here is reachable with an API token and nothing else. There is no session, no CSRF, and no HTML in the path.
| Page | What it covers |
|---|---|
| Authentication | Getting a token, and what it can do |
| Applications and deploys | Create, upload a bundle, set variables, watch a revision |
| Published ports | Asking for a port, or being given one |
| Reading an address | Where a deployed service actually answers |
Every example here is a test
The request and response bodies on these pages are not written by hand. Each one
is a fixture under tests/contracts/api/, compared byte-for-byte against a live
response by the test suite, and this portal renders the same file. A documented
example that stopped being true is a failing build rather than a page nobody
noticed — the same technique the /health contract already uses after a
documented shape and an asserted shape drifted apart for a day.
That means you can copy anything on these pages and expect it to match what you get, down to the null fields.
The shape of the API
Two prefixes, both bearer-token only:
| Prefix | For |
|---|---|
/cli/… |
Everything a consumer drives: organizations, applications, variables, endpoints |
/applications/{slug}/bundle |
The compose + build-context upload that creates a revision |
API Platform's /api also exists, and is not what you want: it sits on the
session firewall, so a token cannot reach it.
Base URL and versioning
Every path on these pages is relative to the install you are talking to —
https://someones.computer for the public one. There is no version prefix. The
contract grows by adding fields; a consumer must ignore fields it does not
recognise rather than failing on them, because new ones will appear.