Documentation
Quickstart
The joiner/leaver loop in four calls.
1. Add a joiner
Role templates generate the full onboarding checklist.
curl -s -H "Authorization: Bearer <key>" -X POST https://api.offboardly.example/v1/employees \
-H "Content-Type: application/json" \
-d '{"name":"Ada Eng","email":"don+offboardly@lifeofmorr.com","role":"engineer"}'
# {"employee":{"id":"emp_0001",...},"onboarding_checklist":{"id":"chl_0002",...}}2. Offboard in one click
Generates the risk-ordered deprovision runbook — identity apps first.
curl -s -H "Authorization: Bearer <key>" -X POST https://api.offboardly.example/v1/employees/emp_0001/offboard \
-H "Content-Type: application/json" -d '{"last_day":"2026-10-31"}'3. Confirm each step
A human confirms every deprovision step — that's the evidence trail.
curl -s -H "Authorization: Bearer <key>" -X POST \
https://api.offboardly.example/v1/checklists/chl_0005/tasks/t0_0/complete \
-H "Content-Type: application/json" -d '{"by":"don+offboardly@lifeofmorr.com"}'4. Find the waste
Orphaned accounts and reclaimable licenses, with the price basis labeled.
curl -s -H "Authorization: Bearer <key>" -X POST https://api.offboardly.example/v1/license-report \
-H "Content-Type: application/json" -d '{"seats":{"slack":10,"github":5}}'Honest limits
- v1 is runbook-guided, not API-automated: it never provisions or revokes app access itself.
- Every deprovision step requires human confirmation. We never auto-revoke silently.
- Waste math uses approximate published list prices — labeled on every row, verified before quoting to a customer.
- Offboardly is not an identity provider or an HRIS — it starts where the HRIS stops: the apps.