Send access details to a trainee
POST/api/public/trainees/{traineeId}/send-credentials
Send the trainee their app access details by email, and optionally by WhatsApp. This generates a new password for the trainee and emails it to them, so it doubles as a password reset. Use it after creating a trainee, since POST /trainees does not send access details on its own. Set sendWhatsApp to true to also deliver the details over WhatsApp, which requires a connected WhatsApp account and a trainee phone number; the password follows in a separate message. Provide whatsappTemplate to override the message, using the {firstName}, {email}, {password} and {appLink} placeholders; when omitted the template saved in the dashboard is used.
Authentication
Requires an API key, sent as Authorization: Bearer cp_live_....
API keys carry scopes. Get the catalog of scopes and webhook events lists every scope.
Path parameters
| Name | Type | Description |
|---|---|---|
traineeIdrequired | string |
Header parameters
| Name | Type | Description |
|---|---|---|
Idempotency-Key | string | Optional. Send a unique key (e.g. a UUID) to make this POST safe to retry. The same key within 24h returns the original result instead of creating a duplicate. |
Request body
application/json, required
| Name | Type | Description |
|---|---|---|
sendWhatsApp | boolean | |
whatsappTemplate | string |
Request examples
curl --request POST \
--url 'https://api.coach-platform.com/api/public/trainees/<traineeId>/send-credentials' \
--header 'Authorization: Bearer cp_live_...' \
--header 'Content-Type: application/json' \
--data '{
"sendWhatsApp": true
}'const response = await fetch('https://api.coach-platform.com/api/public/trainees/<traineeId>/send-credentials', {
method: 'POST',
headers: {
Authorization: 'Bearer cp_live_...',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"sendWhatsApp": true
}),
});
const data = await response.json();Responses
200 OK
Successful response
{
"data": {
"id": "<string>",
"sent": true,
"whatsappSent": true
}
}Response fields (4)
| Name | Type | Description |
|---|---|---|
data | object | |
data.id | string | |
data.sent | boolean | |
data.whatsappSent | boolean |
Error responses
400Bad Request401Unauthorized403Forbidden404Not Found409Conflict429Too Many Requests500Internal Server Error
These statuses share the same response body.
{
"error": {
"code": "<string>",
"message": "<string>",
"fix": "<string>",
"details": {},
"retryAfterMs": 123
}
}Error fields (6)
| Name | Type | Description |
|---|---|---|
error | object | |
error.code | string | |
error.message | string | |
error.fix | string | null | |
error.details | object | null | |
error.retryAfterMs | number | null |
More Trainees endpoints
This page is also available as Markdown. Browse it in the interactive explorer or download the OpenAPI spec.