API REFERENCE

Runners & Runner Groups

16 endpoints discovered from this archive’s backend.

Set these variables first
export ALPHIE_URL="https://YOUR-ALPHIE-HOST"
export ALPHIE_TOKEN="PASTE_YOUR_API_TOKEN_HERE"
# Requires a certificate trusted by your machine. For test-only self-signed certificates,
# use curl --cacert /path/to/alphie.crt (preferred) rather than disabling TLS verification.

Most authenticated endpoints accept Authorization: Bearer $ALPHIE_TOKEN. Endpoints can still require administrator permissions or particular roles. API tokens must be provisioned through an authorized Alphie account; don't put secrets in playbooks, logs, or browser-side forms.

GET/api/runners

List runners

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

POST/api/runners

Create runner

curl --fail-with-body -sS -X POST "$ALPHIE_URL/api/runners" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

GET/api/runners/groups

List runner groups

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/groups" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

POST/api/runners/groups

Create runner group

curl --fail-with-body -sS -X POST "$ALPHIE_URL/api/runners/groups" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

GET/api/runners/groups/memberships

List runner group memberships

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/groups/memberships" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

DELETE/api/runners/groups/{group_id:int}

Delete unused runner group

curl --fail-with-body -sS -X DELETE "$ALPHIE_URL/api/runners/groups/${GROUP_ID}" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

PATCH/api/runners/groups/{group_id:int}

Edit runner group

curl --fail-with-body -sS -X PATCH "$ALPHIE_URL/api/runners/groups/${GROUP_ID}" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

GET/api/runners/metrics

Bulk last metrics for all runners

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/metrics" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

PUT/api/runners/{runner_id:int}/groups

Replace all group memberships for a runner

curl --fail-with-body -sS -X PUT "$ALPHIE_URL/api/runners/${RUNNER_ID}/groups" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

DELETE/api/runners/{runner_id}

Delete runner

curl --fail-with-body -sS -X DELETE "$ALPHIE_URL/api/runners/${RUNNER_ID}" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

GET/api/runners/{runner_id}

Get runner

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/${RUNNER_ID}" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

PUT/api/runners/{runner_id}

Update runner

curl --fail-with-body -sS -X PUT "$ALPHIE_URL/api/runners/${RUNNER_ID}" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

POST/api/runners/{runner_id}/enabled

Enable/disable runner (safe)

curl --fail-with-body -sS -X POST "$ALPHIE_URL/api/runners/${RUNNER_ID}/enabled" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

GET/api/runners/{runner_id}/health

Return last cached health metrics (no probe)

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/${RUNNER_ID}/health" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"

POST/api/runners/{runner_id}/probe

Probe runner over SSH for health

curl --fail-with-body -sS -X POST "$ALPHIE_URL/api/runners/${RUNNER_ID}/probe" \
  -H "Authorization: Bearer $ALPHIE_TOKEN" \n  -H "Content-Type: application/json" \n  --data-binary @request.json

Body example: supply a request.json file matching this endpoint’s request model. Consult $ALPHIE_URL/openapi.json for required fields.

GET/api/runners/{runner_id}/sync_status

Return last image-sync state for a runner

curl --fail-with-body -sS -X GET "$ALPHIE_URL/api/runners/${RUNNER_ID}/sync_status" \
  -H "Authorization: Bearer $ALPHIE_TOKEN"