Client OS API
Contracts, invoices and time
Contracts, invoices, retainers, support plans and time entries.
The money side of the clientos example, behind the dashboard’s money pages.
Operations
| Request | What it does |
|---|---|
| GET /api/clientos/contracts | List records (org:viewer or above) |
| POST /api/clientos/contracts | Create a record (org:contributor or above) |
| GET /api/clientos/contracts/{id} | Get one record (org:viewer or above) |
| PATCH /api/clientos/contracts/{id} | Update a record (org:contributor or above) |
| DELETE /api/clientos/contracts/{id} | Delete a record (org:admin) |
| GET /api/clientos/invoices | List records (org:viewer or above) |
| POST /api/clientos/invoices | Create a record (org:contributor or above) |
| GET /api/clientos/invoices/{id} | Get one record (org:viewer or above) |
| PATCH /api/clientos/invoices/{id} | Update a record (org:contributor or above) |
| DELETE /api/clientos/invoices/{id} | Delete a record (org:admin) |
| GET /api/clientos/retainers | List records (org:viewer or above) |
| POST /api/clientos/retainers | Create a record (org:contributor or above) |
| GET /api/clientos/retainers/{id} | Get one record (org:viewer or above) |
| PATCH /api/clientos/retainers/{id} | Update a record (org:contributor or above) |
| DELETE /api/clientos/retainers/{id} | Delete a record (org:admin) |
| GET /api/clientos/support-plans | List records (org:viewer or above) |
| POST /api/clientos/support-plans | Create a record (org:contributor or above) |
| GET /api/clientos/support-plans/{id} | Get one record (org:viewer or above) |
| PATCH /api/clientos/support-plans/{id} | Update a record (org:contributor or above) |
| DELETE /api/clientos/support-plans/{id} | Delete a record (org:admin) |
| GET /api/clientos/time-entries | List records (org:viewer or above) |
| POST /api/clientos/time-entries | Create a record (org:contributor or above) |
| GET /api/clientos/time-entries/{id} | Get one record (org:viewer or above) |
| PATCH /api/clientos/time-entries/{id} | Update a record (org:contributor or above) |
| DELETE /api/clientos/time-entries/{id} | Delete a record (org:admin) |
Methods and paths come from packages/api-client/openapi.json, which CI regenerates from the route definitions; this site builds its lists from that file. Every /api operation needs a Supabase Auth JWT or a PAT and is rate limited. /health and /health/deep are plain routes outside the spec.