Quick Start
Create your first trainee in 60 seconds.
1. Get an API key
- Log in to the Progress admin dashboard.
- Open Settings → API Keys.
- Click the + button, name the key (e.g. "Fireberry production"), and copy the generated value. It looks like
pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Save the key somewhere safe — it grants full access to create, update, and delete trainees in your company. You can rotate it anytime by deleting the key and generating a new one.
2. Create a trainee
The smallest valid request needs name, email, phoneNumber, and password. Everything else is optional.
curl -X POST 'https://api.progress-workout.com/public-api/trainees' \
-H 'X-API-Key: pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
-H 'Content-Type: application/json' \
-d '{
"name": "Israel Israeli",
"email": "[email protected]",
"phoneNumber": "+972501234567",
"password": "Pa55word!"
}'3. Expected response
{
"timestamp": 1780406263,
"trainee": {
"id": 21363351,
"userId": 21363350,
"name": "Israel Israeli",
"email": "[email protected]",
"phoneNumber": "+972501234567",
"authorities": ["TRAINEE", "USER"],
"username": "[email protected]",
"enabled": true,
"companyId": 314,
"createdByType": "ADMIN",
"forcePasswordChange": true,
"trainerId": 3620244,
"weightUnit": "KG",
"trail": false
}
}A few things to notice:
trainee.idis the trainee id — use it forPUTandDELETEcalls.trainee.userIdis the underlying user id; you usually don't need it.companyIdcomes from your API key, not the request body. You can't create a trainee in someone else's company even if you try.trainerIdwas auto-assigned to your company's first trainer because the request didn't specify one. PasstrainerIdexplicitly if you want a specific assignment.forcePasswordChange: true— the user must change the password you set on their first login.
4. What's next?
Update a trainee
PUT to /public-api/trainees/{id} with any subset of fields.
Delete a trainee
DELETE soft-deletes — data is retained but the user can no longer log in.
Listen for events
Set up outbound webhooks in the admin so your CRM hears when a Progress trainee changes.
Handle errors
Reference table of status codes and recommended retry behavior.
Updated about 1 hour ago
