API reference / athlete

athlete

GET/api/v1/athletes

List athletes

Auth:
required
Response:
{ data }
POST/api/v1/athletes

Create athlete

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id

Get athlete by ID

Auth:
required
Response:
{ data }
PUT/api/v1/athletes/:id

Update athlete

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/season-summary

Season keepsake for a family: real photos, coach recognitions, parent-visible notes

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/achievements

Achievement progress and earned recognitions for an athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/achievements

Recognise an achievement - coach and above, org-scoped, idempotent on key

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/academics

Get academics for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/academics

Create academic

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/activities

Get activities for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/activities

Create activity

Auth:
required
Response:
{ data }
POST/api/v1/consent/guardian-request

A child under 13 asked to join. Invites a guardian to set the account up and give consent first. Collects NOTHING about the child — not a name, not an email — because verifiable parental consent has to precede the personal information, not accompany it. Deliberately unauthenticated: the person asking has no account, which is the point. The response is identical whether or not the address is known, so it cannot be used to discover which families use Peer10.

Auth:
none
Response:
{ data }
POST/api/v1/athletes/:id/consent

Create consent

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/courses

Get courses for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/courses

Create cours

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/deletion-requests

Get deletion requests for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/deletion-requests

Create deletion request

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/eligibility

Get eligibility for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/eligibility

Create eligibility

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/goals

Get goals for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/goals

Create goal

Auth:
required
Response:
{ data }
PATCH/api/v1/athletes/:id/goals

Partially update goal

Auth:
required
Response:
{ data }
DELETE/api/v1/athletes/:id/goals

Delete goal

Auth:
required
Response:
{ success, message }
POST/api/v1/athletes/:id/link

Link athlete

Auth:
required
Response:
{ success, message }
GET/api/v1/athletes/:id/matches

Get matches for athlete

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/measurables

Get measurables for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/measurables

Create measurable

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/merge

Merge athlete

Auth:
required (min role: admin)
Response:
{ success, message }
GET/api/v1/athletes/:id/merge/preview

List preview

Auth:
required (min role: admin)
Response:
{ data }
GET/api/v1/athletes/:id/milestones

Get milestones for athlete

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/resume

Get resume for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/resume

Create resume

Auth:
required
Response:
{ data }
PUT/api/v1/athletes/:id/resume

Update resume

Auth:
required
Response:
{ data }
GET/api/v1/athletes/:id/resume/download

List download

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/resume/generate

Generate generate

Auth:
required (min role: coach)
Response:
{ data }
GET/api/v1/athletes/:id/training-logs

Get training logs for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/training-logs

Create training log

Auth:
required
Response:
{ data }
DELETE/api/v1/athletes/:id/training-logs

Delete training log

Auth:
required
Response:
{ success, message }
GET/api/v1/athletes/:id/verifications

Get verifications for athlete

Auth:
required
Response:
{ data }
POST/api/v1/athletes/:id/verifications

Create verification

Auth:
required
Response:
{ data }
GET/api/v1/me/growth

Change over time in the signed-in athlete’s own measurables

Auth:
required
Response:
{ data }
athlete API — Peer10 Developers