Wakeplane exposes a JSON HTTP API for schedule and run management. The route tables on this page are aligned to internal/api/http.go in the source repo.
Operator warning: Wakeplane currently has no auth or RBAC. Bind it to localhost, a trusted subnet, VPN, Tailscale, or a reverse-proxied private network. Do not expose it directly to the public internet. See Security .
Method Path Description GET/healthzLiveness probe. Returns {"ok":true}. GET/readyzReadiness probe. Returns {"ok":true,"storage":"ok"} when the store is reachable.
Method Path Description GET/v1/statusOperational status including scheduler timing, worker counts, and run counts. GET/v1/metricsPrometheus text metrics for schedules, runs, leases, and executor outcomes.
Method Path Description POST/v1/schedulesCreate a schedule. Returns 201 with the full schedule. GET/v1/schedulesList schedules. Supports enabled, limit, and cursor. GET/v1/schedules/{id}Get one schedule including computed next_run_at. PUT/v1/schedules/{id}Replace a schedule. All fields required. PATCH/v1/schedules/{id}Patch a schedule. Only provided fields change. DELETE/v1/schedules/{id}Delete a schedule and dependent rows. POST/v1/schedules/{id}/pausePause a schedule. POST/v1/schedules/{id}/resumeResume a schedule and recompute next_run_at. POST/v1/schedules/{id}/triggerCreate a manual run immediately. Requires {"reason":"..."}. GET/v1/schedules/{id}/runsList runs for one schedule. Supports status, limit, and cursor.
Method Path Description GET/v1/runsList runs across all schedules. Supports schedule_id, status, limit, and cursor. GET/v1/runs/{id}Get one run including result fields. GET/v1/runs/{id}/receiptsList execution receipts for a run.
"error" : " human-readable message " ,
HTTP Status Code When 400 bad_requestMalformed JSON, invalid query parameters, or invalid trigger reason 400 validation_failedSchedule create or patch validation failed 404 not_foundSchedule or run ID does not exist 500 internal_errorUnexpected server error
List endpoints use cursor-based pagination with newest-first ordering.
Parameter Applies to Behavior limitschedule and run list endpoints Default 50. Invalid or non-positive values fall back to 50. cursorschedule and run list endpoints Opaque cursor from a previous response. Invalid values return 400 bad_request. `enabled=true false` GET /v1/schedulesschedule_id=<id>GET /v1/runsFilter runs to a single schedule. status=<value>run list endpoints Accepted values: cancelled, claimed, dead_lettered, failed, pending, retry_scheduled, running, skipped, succeeded.
Request bodies: application/json
JSON responses: application/json
Metrics response: text/plain; version=0.0.4