GymMaintain
Contents · Service contracts

Service contracts

GET   /service-contracts?status=active&supplier_id={id}
POST  /service-contracts
GET   /service-contracts/{id}
PATCH /service-contracts/{id}

number is generated. Do not send tenant_id.

POST — name is required. Optional: status (default active), supplier_id, included_services, starts_at, ends_at (ends_at ≥ starts_at), auto_renew (boolean, default false), notice_date, response_hours (1–720), resolution_hours (1–2160), cost_per_year, contract_manager_id (uuid or numeric user id). Response 201.

PATCH — the same fields, all optional. name must not be empty when you send it.

status: draft | active | paused | ended.

curl -X POST https://app.gymmaintain.com/api/v1/service-contracts \
  -H "Authorization: Bearer gm_..." -H "Content-Type: application/json" \
  -d '{"name":"All-in cardio","supplier_id":"<uuid>","status":"active","response_hours":8}'