Schedule your first job in a minute — two paths: the hosted API, or the self-hosted CLI below.
Pre-launch: the hosted API opens at launch; this page activates with it. After checkout, open the claim page — it exchanges your Stripe session for your tenant API key (shown once). Then:
curl -X POST https://tickbase-api.onrender.com/v1/jobs \
-H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"id":"nightly-report","url":"https://example.com/api/reports/nightly","method":"POST","schedule":{"type":"cron","expr":"0 2 * * *"},"retries":3}'
# inspect your run history (scoped to your tenant):
curl "https://tickbase-api.onrender.com/v1/runs?n=20" -H "X-API-Key: YOUR_KEY"Plan limits from the pricing page are enforced by the API: jobs beyond your tier, intervals below your tier floor, and retry counts above your tier cap are refused with an honest error — never silently billed.
The examples below are the self-hosted path: they assume the CLI and read API on http://127.0.0.1:8080.
python -m tickbase.cli add --id nightly-report \ --url https://example.com/api/reports/nightly \ --method POST --cron "0 2 * * *" \ --retries 5 --timeout-s 30 # or interval-based: --interval 300 (every 5 minutes)
python -m tickbase.cli run # jobs fire on schedule; failures retry with backoff; # alerts fire after consecutive failures
curl "http://127.0.0.1:8080/runs?n=20&job_id=nightly-report"
# {"runs": [{"job_id": "nightly-report", "status": "success",
# "status_code": 200, "latency_ms": 342, ...}]}OPENAPI.md in the product repo.