Quick Start

Create your first trainee in 60 seconds.

1. Get an API key

  1. Log in to the Progress admin dashboard.
  2. Open Settings → API Keys.
  3. 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.id is the trainee id — use it for PUT and DELETE calls. trainee.userId is the underlying user id; you usually don't need it.
  • companyId comes from your API key, not the request body. You can't create a trainee in someone else's company even if you try.
  • trainerId was auto-assigned to your company's first trainer because the request didn't specify one. Pass trainerId explicitly if you want a specific assignment.
  • forcePasswordChange: true — the user must change the password you set on their first login.

4. What's next?