curl -X POST "https://api.fitsociety.io/public/v1/workout/clients/{clientId}/library/category/{categoryId}" \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: <stable_request_key>" \
-H "Content-Type: application/json" \
-d '{}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
page: 1,
limit: 20,
favourites: false,
muscleGroups: ['Quadriceps'],
equipments: ['barbell'],
categories: ['Strength'],
levels: ['Intermediate'],
coaches: [],
search: ''
})
};
fetch('https://api.fitsociety.io/public/v1/workout/clients/{clientId}/library/category/{categoryId}', 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/clients/{clientId}/library/category/{categoryId}"
payload = {
"page": 1,
"limit": 20,
"favourites": False,
"muscleGroups": ["Quadriceps"],
"equipments": ["barbell"],
"categories": ["Strength"],
"levels": ["Intermediate"],
"coaches": [],
"search": ""
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Get templates in a category (See All)
Client-only. Returns a paginated list of template cards for the given workout library category. Accepts the same filter set as the library home endpoint in the request body. availableFilters.coaches is dynamically populated from coaches who created active templates for this company.
Requires the workout_client_plans:write scope. This operation maps to /app/v1/workout/client/library/category/:categoryId and retains its Workout V2 permission, feature-flag, and resource-scope checks.
The clientId path parameter identifies the client represented by the request context.
curl -X POST "https://api.fitsociety.io/public/v1/workout/clients/{clientId}/library/category/{categoryId}" \
-H "Authorization: Bearer <access_token>" \
-H "Idempotency-Key: <stable_request_key>" \
-H "Content-Type: application/json" \
-d '{}'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
page: 1,
limit: 20,
favourites: false,
muscleGroups: ['Quadriceps'],
equipments: ['barbell'],
categories: ['Strength'],
levels: ['Intermediate'],
coaches: [],
search: ''
})
};
fetch('https://api.fitsociety.io/public/v1/workout/clients/{clientId}/library/category/{categoryId}', 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/clients/{clientId}/library/category/{categoryId}"
payload = {
"page": 1,
"limit": 20,
"favourites": False,
"muscleGroups": ["Quadriceps"],
"equipments": ["barbell"],
"categories": ["Strength"],
"levels": ["Intermediate"],
"coaches": [],
"search": ""
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(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 library category id.
"67f1234567890abcdef1234"
Client in the company bound to the Public API token.
^[a-fA-F0-9]{24}$Body
x >= 11
1 <= x <= 10020
true to restrict to the client's favourited templates.
false
["Quadriceps"]
["barbell"]
["Strength"]
Beginner, Intermediate, Advance ["Intermediate"]
[]
""