JS Vision: V1 vs V2 Shifts API
If your Connecteam account has been migrated to JS Vision — our new shift-scheduling storage architecture — the Scheduler REST API gives you two paths to choose from. This section explains exactly how each one behaves on a migrated company, so you can pick the right one and migrate existing integrations safely.
Just here to confirm nothing is breaking?If your integration was written before JS Vision and only calls
/scheduler/v1/..., it keeps working unchanged after migration:
- Every shift ID your system already stored continues to be accepted by V1 — no need to convert or re-fetch anything.
- The same endpoints, the same response shape, the same fields.
One thing to be aware of: any new shifts created via V1 after migration come back with a longer ID format (
bson:uuid, around 61 characters, containing a:). If your shift-ID column is a fixed 24-char width, widen it before migration day. See Shift IDs and Response Shapes for the full mechanic.
TL;DR
/scheduler/v1/... | /scheduler/v2/... | |
|---|---|---|
| Available on non-Vision companies | Yes | No — returns 403 |
| Group shift with N users in a response | N separate shift objects | 1 shift, assignedUserIds: [...] |
| Shift ID format (migrated company) | Slot ID: bson:uuid | Base ID: plain bson |
| Multi-user assign / multi-spot open shifts | Rejected | Allowed |
| Existing integrations | Keep working unchanged | Opt-in |
Rule of thumb: if your integration was written before JS Vision, stay on V1 — your code keeps working as-is. If you want clean group-shift semantics or multi-spot open shifts, use V2.
Am I migrated?
Send any V2 request and check the response. You don't need a specific endpoint — just hit the list:
curl --request GET \
--url 'https://api.connecteam.com/scheduler/v2/schedulers/{schedulerId}/shifts?startTime=1736899200&endTime=1737504000' \
--header 'X-API-KEY: YOUR_API_KEY'
Non-migrated companies get403If your company is not migrated, every V2 endpoint returns:
{ "detail": "V2 endpoints require JS Vision migration. Contact support to migrate." }There is no opt-in flag in the API — contact Connecteam Support to be migrated.
Migrated companies see a normal responseA
200with ashiftsarray (or a404for a missing shift, when calling by ID) means you're on Vision. Both V1 and V2 are available, and both run against the same data.
Pages in this section
| Page | When to read |
|---|---|
| How V1 and V2 Differ | Start here. Why two versions exist, URL paths, full TL;DR table, and how to choose between V1 and V2 for any given situation. |
| Shift IDs and Response Shapes | What IDs each version returns and accepts, conversion rules, and side-by-side response examples for group, open, and single shifts. |
| Endpoint-by-Endpoint Reference | Full diff for GET, POST, PUT, DELETE, plus pagination and validation rules — with cURL examples for each. |
| Migration Playbook and FAQ | Step-by-step recipe for moving a working V1 integration over to V2, with answers to the common questions. |
See also
Updated about 19 hours ago
