curl -X PATCH "https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder" \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: <stable_request_key>" \
-H "Content-Type: application/json" \
-d '{}'const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({planExerciseIds: ['6a2695e980ea215a52485b82', '6a2691fd80ea215a52485aed']})
};
fetch('https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder"
payload = { "planExerciseIds": ["6a2695e980ea215a52485b82", "6a2691fd80ea215a52485aed"] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)Reorder the exercises inside one superset
Reorder the exercises INSIDE one superset. The request must list every member of the superset (its planExercise subdoc _ids) in the new order. The members’ own order slots are redistributed in the requested sequence, so they reshuffle among themselves without displacing the day’s other exercises (the superset block stays at the same position). Must be an exact permutation of the superset’s members.
Requires the workout_plans:write scope. This operation maps to /app/v1/workout/plans/template/:planId/moments/:planMomentId/supersets/:groupId/reorder and retains its Workout V2 permission, feature-flag, and resource-scope checks.
The clientId path parameter is resolved inside the company bound to the Public API token when present.
curl -X PATCH "https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder" \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: <stable_request_key>" \
-H "Content-Type: application/json" \
-d '{}'const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({planExerciseIds: ['6a2695e980ea215a52485b82', '6a2691fd80ea215a52485aed']})
};
fetch('https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.fitsociety.io/public/v1/workout/plans/template/{planId}/moments/{planMomentId}/supersets/{groupId}/reorder"
payload = { "planExerciseIds": ["6a2695e980ea215a52485b82", "6a2691fd80ea215a52485aed"] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)Authorizations
Public API access token issued by /public/v1/oauth/token. Example: Authorization: Bearer fspt_.... Each resource request rechecks the token company's current provider access. Disabling access blocks existing tokens with 403 auth.provider_unavailable.
Headers
Required for Public API write requests. Reusing the same key with the same method, path, and body replays the stored successful response; reusing it with a different request returns 409 idempotency.conflict.
1 - 200"booking-create-20260714-001"
Path Parameters
Workout plan id.
"67f1234567890abcdef1234"
Plan moment (day) id.
"67f1234567890abcdef1234"
Superset group id.
"67f1234567890abcdef1234"
Body
All member planExercise subdoc _ids of the superset, in the new order.
2[ "6a2695e980ea215a52485b82", "6a2691fd80ea215a52485aed" ]