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, 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!",
    "dateOfBirth": "02-06-1990",
    "expirationDate": "31-12-2026"
  }'

Two date fields to know about:

  • dateOfBirth — string in dd-MM-yyyy format. Optional.
  • expirationDate — string in dd-MM-yyyy format. The trainee's program expires on this date. Omit or pass null for no expiration.

3. Expected response

{
  "timestamp": "02-06-2026",
  "trainee": {
    "id": 21363351,
    "userId": 21363350,
    "name": "Israel Israeli",
    "email": "[email protected]",
    "phoneNumber": "+972501234567",
    "username": "[email protected]",
    "dateOfBirth": "02-06-1990",
    "enabled": true,
    "companyId": 314,
    "createdByType": "ADMIN",
    "forcePasswordChange": true,
    "expirationDate": "31-12-2026",
    "trainerId": 3620244,
    "weightUnit": "KG"
  }
}

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.
  • All dates (dateOfBirth, expirationDate, lastTrained, and the top-level timestamp) are dd-MM-yyyy strings — the same format you send them in.
  • 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?


Did this page help you?