HTTP endpoints¶
| Endpoint | |
|---|---|
POST <path> |
webhook. 202 started or queued · 200 ping, ignored or duplicate · 401 bad signature · 409 running and queue = false |
POST /deploy/{name} |
manual deploy, optional body {"commit":"...","user":"..."}. Token required |
GET /status |
state of every deploy. Token required if api_token_env is set |
GET /status/{name} |
state of one deploy. Same |
GET /history/{name}?limit=N |
past deploys from the kept logs, newest first. Same |
GET /healthz |
liveness, always open |
With api_token_env set, send Authorization: Bearer <token>.
Status object¶
{
"deploy": "agency",
"status": "success",
"started_at": "2026-09-29T12:54:33+02:00",
"finished_at": "2026-09-29T12:56:01+02:00",
"duration": "1m28s",
"delivery": "51af02d4-...",
"repository": "acme/agency",
"branch": "main",
"commit": "9f1c2e...",
"trigger": "webhook",
"exit_code": 0,
"log": "20260929-125433-51af02.log",
"queued": {"commit": "a41f...", "since": "2026-09-29T12:55:10+02:00"}
}
status is one of:
never |
no run since the deploy was configured |
waiting |
waiting for CI |
running |
|
success |
|
failed |
non-zero exit or timeout |
skipped |
CI failed, timed out, or a newer push superseded it |
interrupted |
the service stopped mid-deploy |
queued appears only while a push waits. A queued push is lost if the
service stops before it runs; that is logged.