Your tools read your box's schedule, team, monthly hours, replacements and absences. Read only.
The manager creates a key in their space: Import and connect, then CoverShift API. The key starts with cs_ and is shown only once. It gives access to its box's data only. It can be revoked in the same place, at any time.
curl https://covershift.be/api/v1/planning?from=2026-11-03&to=2026-11-09 \ -H "Authorization: Bearer cs_votre_cle"
JSON response:
{
"gym": "Box Élan",
"data": [
{ "id": "…", "starts_at": "2026-11-03T17:30:00+00:00", "ends_at": "2026-11-03T18:30:00+00:00",
"class": "WOD", "site": null, "status": "planned",
"coach": { "id": "…", "name": "Pauline Martin" } }
]
}
Times are in UTC. The dates from and to are read in Belgian time.
| Path | Parameters | Content |
|---|---|---|
/api/v1/planning | from, to | Each class: start, end, title, site, coach, status: planned (planned), replacement_open (replacement requested, not taken yet: coach is null), replacement (replacement taken: coach is the replacement coach) or cancelled (cancelled). |
/api/v1/coaches | The team: name, status (employee, self-employed, student, flexi-job, volunteer, via SMart, or null if the box has not specified it), contract hours, hourly rate. | |
/api/v1/hours | month | The classes given in the month (duration, rate, origin, validation, Sunday or public holiday) and, per coach, the validated and paid month. stale is true when the classes or the amount have changed since validation: the month then needs to be validated again. |
/api/v1/replacements | from, to | Requested replacements: class, status, coach who took it. |
/api/v1/absences | from, to | Approved leave and absences of the team's coaches. |
from and to in YYYY-MM-DD format: today and fourteen days later by default, 92 days at most. month in YYYY-MM format: the current month by default.
No coach e-mail, phone, national number or IBAN. Nothing is written through the API: the schedule is changed in CoverShift, or arrives from Wodify every night.
| Code | Meaning |
|---|---|
| 400 | Badly written date, month or period (for example 2026-1 instead of 2026-01). |
| 401 | Key missing, unknown or revoked. |
| 404 | Unknown resource. |
| 429 | More than 120 calls in a minute: wait a little. |
Each error returns {"error": "…"} with the reason in plain words (in French). A question: contact@covershift.be.