CoverShift API

Your tools read your box's schedule, team, monthly hours, replacements and absences. Read only.

The key

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.

A call

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.

Resources

PathParametersContent
/api/v1/planningfrom, toEach 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/coachesThe 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/hoursmonthThe 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/replacementsfrom, toRequested replacements: class, status, coach who took it.
/api/v1/absencesfrom, toApproved 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.

What the API does not return

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.

Errors and limits

CodeMeaning
400Badly written date, month or period (for example 2026-1 instead of 2026-01).
401Key missing, unknown or revoked.
404Unknown resource.
429More 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.