Atlas CLI
atlas is a Rust command-line client for every published Coach API operation. Its 138 commands are generated from the same OpenAPI contract as the Coach API Reference, so the two always list the same endpoints. JSON responses go to stdout and diagnostics to stderr.
Install
atlas is a single binary with no other dependencies. Download the build for your computer:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | atlas-macos-arm64 |
| macOS (Intel) | atlas-macos-x64 |
| Linux (x64) | atlas-linux-x64 |
| Linux (ARM64) | atlas-linux-arm64 |
| Windows (x64) | atlas-windows-x64.exe |
Every release also publishes SHA-256 Checksums for these files.
On macOS or Linux, download your platform's build from a terminal, make it executable and put it on your PATH. Swap macos-arm64 for the name in the table that matches your computer:
curl -fsSL https://<your-atlas-console>/download/cli/macos-arm64 -o atlas
chmod +x atlas
sudo mv atlas /usr/local/bin/atlas
atlas --versionIf macOS says it cannot verify a build you downloaded in a browser, run xattr -d com.apple.quarantine atlas before moving it. On Windows, rename the download to atlas.exe, move it to a folder on your PATH, and run atlas --version.
Then check that it runs and lists every command:
atlas --version
atlas operationsAuthenticate
Log in through the browser. atlas login prints a link and a short code, and opens the browser when it can. Sign in to the console, check that the code matches your terminal, choose the club, access, and expiry, and approve. The browser may be on another computer, so this also works over SSH and for agents.
atlas login --api-url "https://graceful-tortoise-95.convex.site"
atlas auth-status
atlas get-agent-accountThe token is saved on your computer, readable only by your user account, and every command uses it. Logging in again replaces it and revokes the old one; atlas logout revokes it and deletes it. Use --permissions read,write to say what access the task needs (only read and write are ever pre-selected), --name to label the token, and --no-browser to only print the link. Set ATLAS_CONFIG_DIR to keep the login somewhere else.
You can also use a personal access token from the Integrations page (see Create A Token). --token and ATLAS_API_TOKEN take precedence over a saved login. Prefer the environment variable, so the token stays out of shell history and process arguments.
export ATLAS_API_URL="https://graceful-tortoise-95.convex.site"
export ATLAS_API_TOKEN="YOUR_ATLAS_API_TOKEN"
atlas get-agent-accountATLAS_API_URL may include /api/v1. It must use https://; plain http:// is accepted only for localhost and loopback addresses. health and openapi need no token, and dry runs never send one.
Global Flags
These flags work with every command.
| Flag | Details |
|---|---|
--api-url <URL> | Convex site URL, with or without /api/v1. Reads ATLAS_API_URL. |
--token <TOKEN> | Atlas personal access token. Reads ATLAS_API_TOKEN. |
--compact | Write compact JSON instead of pretty-printed JSON. |
-i, --include | Write the HTTP status and response headers to stderr. |
--dry-run | Validate and print the request without sending it. |
--retries <COUNT> | Retries for rate limits and safe transient failures. Defaults to 2. |
--timeout <SECONDS> | Per-request timeout in seconds, from 1 to 600. Defaults to 30. |
-H, --header <NAME:VALUE> | Add a request header; may be repeated. |
Built-In Commands
atlas login [--permissions LIST] [--name NAME] [--no-browser]: Log in through the browser and save a token on this computer.atlas logout: Revoke the saved login's token and delete it from this computer.atlas auth-status: Show which token commands use, without revealing it.atlas operations [--json]: List all bundled API operations.atlas openapi: Fetch the server's OpenAPI document.atlas request [--method METHOD] PATH [--query NAME=VALUE] [--body JSON|-] [--public]: Call an API path directly as a forward-compatible escape hatch.
atlas request reaches a route the bundled contract does not list yet. Its path is relative to /api/v1 and may not contain . or .. segments.
Reading, Paging, And Writing
Each command takes the endpoint's path, query, and header parameters as long flags. If-Match is --revision; the other protocol headers are --if-none-match and --idempotency-key. The camel-case operationId also works as the command name.
atlas list-roster --limit 100 --all
atlas get-program --program-id PROGRAM_ID --include
atlas create-athlete --body '{"name":"Alex Smith"}'
atlas create-program --idempotency-key import-2026-08-28 --body-file ./program.json
jq '{coachNotes: .note}' note.json | \
atlas patch-program-day --program-id PROGRAM_ID \
--week-number 1 --day-number 2 --revision 3 --body -
atlas --dry-run delete-program --program-id PROGRAM_ID --revision 7--allappears on every cursor operation. It followscontinueCursor, rejects repeated cursors, combines every page, and addsdata.pagesFetched.- Bodies are JSON objects, given inline, from a file, or on stdin. The CLI rejects malformed JSON and bodies over the API's 1 MB limit before sending, and URL-encodes path and query values.
- Output is pretty-printed JSON;
--compactsuits pipelines and--includewrites the status and headers to stderr. API errors keep their JSON body and exit nonzero. A304 Not Modifiedsucceeds and may have no body. - Rate-limited requests honor
Retry-After. Transient failures are retried only for reads and for writes with an idempotency key; other writes retry only on Atlas's ownRATE_LIMITEDresponse. --headercannot overrideAuthorization; useatlas login,--token, orATLAS_API_TOKEN.
Account And Health
atlas get-agent-account
Inspect the authenticated token, scopes, and rate limit
atlas get-agent-account- Endpoint
GET /account- Permission
read- Alias
getAgentAccount
atlas health
Check API availability
atlas health- Endpoint
GET /health- Permission
public
Roster
atlas list-roster
Page through the complete stable coach-owned athlete roster
atlas list-roster- Endpoint
GET /roster- Permission
read- Alias
listRoster
| Flag | Details |
|---|---|
--limit <limit> | query parameter: limit |
--cursor <cursor> | query parameter: cursor |
--all | Follow every cursor and combine all pages |
Athletes
atlas archive-athlete-profile-by-id
Archive an athlete roster profile without deleting its history
atlas archive-athlete-profile-by-id --athlete-id <athleteId>- Permission
athlete_data_delete- Alias
archiveAthleteProfileById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas create-athlete
Create or adopt a stable coach-owned roster entry
atlas create-athlete --body <JSON|->- Endpoint
POST /athletes- Permission
write- Alias
createAthlete
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-athlete-data
Delete all programs, personal records, and meet data for an athlete
atlas delete-athlete-data --athlete-name <athleteName>- Endpoint
DELETE /athletes/{athleteName}- Permission
athlete_data_delete- Alias
deleteAthleteData
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas delete-athlete-data-by-id
Delete all programs, personal records, and meet data for an athlete
atlas delete-athlete-data-by-id --athlete-id <athleteId>- Endpoint
DELETE /athletes/id/{athleteId}- Permission
athlete_data_delete- Alias
deleteAthleteDataById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas get-athlete-by-id
Get an athlete profile and integration status
atlas get-athlete-by-id --athlete-id <athleteId>- Endpoint
GET /athletes/by-id/{athleteId}- Permission
read- Alias
getAthleteById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas list-athletes
List athletes belonging to the coach
atlas list-athletes- Endpoint
GET /athletes- Permission
read- Alias
listAthletes
atlas update-athlete-profile-by-id
Update an athlete name, email, or Output connection
atlas update-athlete-profile-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
updateAthleteProfileById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Personal Records
atlas bulk-upsert-personal-records
Create or update up to 100 personal records
atlas bulk-upsert-personal-records --athlete-name <athleteName> --body <JSON|->- Permission
write- Alias
bulkUpsertPersonalRecords
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas bulk-upsert-personal-records-by-id
Create or update up to 100 personal records
atlas bulk-upsert-personal-records-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
bulkUpsertPersonalRecordsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas calculate-training-weights
Calculate rounded training weights from an athlete PR
atlas calculate-training-weights --athlete-name <athleteName> --body <JSON|->- Permission
read- Alias
calculateTrainingWeights
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas calculate-training-weights-by-id
Calculate rounded training weights from an athlete PR
atlas calculate-training-weights-by-id --athlete-id <athleteId> --body <JSON|->- Permission
read- Alias
calculateTrainingWeightsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-all-personal-records
Delete every personal record for an athlete
atlas delete-all-personal-records --athlete-name <athleteName>- Permission
athlete_data_delete- Alias
deleteAllPersonalRecords
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas delete-all-personal-records-by-id
Delete every personal record for an athlete
atlas delete-all-personal-records-by-id --athlete-id <athleteId>- Permission
athlete_data_delete- Alias
deleteAllPersonalRecordsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas delete-personal-record
Delete one personal record
atlas delete-personal-record --athlete-name <athleteName> --personal-record-id <personalRecordId>- Permission
athlete_data_delete- Alias
deletePersonalRecord
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--personal-record-id <personalRecordId>Required | path parameter: personalRecordId |
atlas delete-personal-record-by-id
Delete one personal record
atlas delete-personal-record-by-id --athlete-id <athleteId> --personal-record-id <personalRecordId>- Permission
athlete_data_delete- Alias
deletePersonalRecordById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--personal-record-id <personalRecordId>Required | path parameter: personalRecordId |
atlas get-recent-bests
Get best estimated 1RMs from completed non-miss sets in the prior three months
atlas get-recent-bests --athlete-name <athleteName> --today <today>- Permission
read- Alias
getRecentBests
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--today <today>Required | query parameter: today |
atlas get-recent-bests-by-id
Get best estimated 1RMs from completed non-miss sets in the prior three months
atlas get-recent-bests-by-id --athlete-id <athleteId> --today <today>- Permission
read- Alias
getRecentBestsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--today <today>Required | query parameter: today |
atlas list-personal-records
List an athlete's personal records
atlas list-personal-records --athlete-name <athleteName>- Permission
read- Alias
listPersonalRecords
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--exercise-name <exerciseName> | query parameter: exerciseName |
atlas list-personal-records-by-id
List an athlete's personal records
atlas list-personal-records-by-id --athlete-id <athleteId>- Permission
read- Alias
listPersonalRecordsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--exercise-name <exerciseName> | query parameter: exerciseName |
atlas upsert-personal-record
Create or update an athlete personal record
atlas upsert-personal-record --athlete-name <athleteName> --body <JSON|->- Permission
write- Alias
upsertPersonalRecord
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-personal-record-by-id
Create or update an athlete personal record
atlas upsert-personal-record-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
upsertPersonalRecordById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Meets And Annual Plans
atlas delete-athlete-meet
Delete one upcoming meet
atlas delete-athlete-meet --athlete-name <athleteName> --meet-id <meetId>- Permission
athlete_data_delete- Alias
deleteAthleteMeet
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-id <meetId>Required | path parameter: meetId |
atlas delete-athlete-meet-by-id
Delete one upcoming meet
atlas delete-athlete-meet-by-id --athlete-id <athleteId> --meet-id <meetId>- Permission
athlete_data_delete- Alias
deleteAthleteMeetById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-id <meetId>Required | path parameter: meetId |
atlas delete-meet
Delete all upcoming meets for an athlete
atlas delete-meet --athlete-name <athleteName>- Permission
athlete_data_delete- Alias
deleteMeet
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas delete-meet-by-id
Delete all upcoming meets for an athlete
atlas delete-meet-by-id --athlete-id <athleteId>- Permission
athlete_data_delete- Alias
deleteMeetById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas get-annual-plan
Get meets, overlapping programs, and week notes in an athlete's date range
atlas get-annual-plan --athlete-name <athleteName> --start-date <startDate> --end-date <endDate>- Permission
read- Alias
getAnnualPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--start-date <startDate>Required | query parameter: startDate |
--end-date <endDate>Required | query parameter: endDate |
atlas get-annual-plan-by-id
Get meets, overlapping programs, and week notes in an athlete's date range
atlas get-annual-plan-by-id --athlete-id <athleteId> --start-date <startDate> --end-date <endDate>- Permission
read- Alias
getAnnualPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--start-date <startDate>Required | query parameter: startDate |
--end-date <endDate>Required | query parameter: endDate |
atlas get-meet
List an athlete's meets
atlas get-meet --athlete-name <athleteName>- Endpoint
GET /athletes/{athleteName}/meet- Permission
read- Alias
getMeet
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas get-meet-by-id
List an athlete's meets
atlas get-meet-by-id --athlete-id <athleteId>- Permission
read- Alias
getMeetById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas list-meet-results
List locally managed and imported meet-result overrides
atlas list-meet-results --athlete-name <athleteName>- Permission
read- Alias
listMeetResults
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas list-meet-results-by-id
List locally managed and imported meet-result overrides
atlas list-meet-results-by-id --athlete-id <athleteId>- Permission
read- Alias
listMeetResultsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas remove-meet-result
Delete a local result or hide an imported result
atlas remove-meet-result --athlete-name <athleteName> --source-key <sourceKey>- Permission
athlete_data_delete- Alias
removeMeetResult
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--source-key <sourceKey>Required | path parameter: sourceKey |
atlas remove-meet-result-by-id
Delete a local result or hide an imported result
atlas remove-meet-result-by-id --athlete-id <athleteId> --source-key <sourceKey>- Permission
athlete_data_delete- Alias
removeMeetResultById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--source-key <sourceKey>Required | path parameter: sourceKey |
atlas update-athlete-meet
Update one upcoming meet
atlas update-athlete-meet --athlete-name <athleteName> --meet-id <meetId> --body <JSON|->- Permission
write- Alias
updateAthleteMeet
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-id <meetId>Required | path parameter: meetId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas update-athlete-meet-by-id
Update one upcoming meet
atlas update-athlete-meet-by-id --athlete-id <athleteId> --meet-id <meetId> --body <JSON|->- Permission
write- Alias
updateAthleteMeetById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-id <meetId>Required | path parameter: meetId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-meet
Add an upcoming meet for an athlete
atlas upsert-meet --athlete-name <athleteName> --body <JSON|->- Endpoint
PUT /athletes/{athleteName}/meet- Permission
write- Alias
upsertMeet
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-meet-by-id
Add an upcoming meet for an athlete
atlas upsert-meet-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
upsertMeetById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-meet-result
Create or update a local meet result or imported-result override
atlas upsert-meet-result --athlete-name <athleteName> --body <JSON|->- Permission
write- Alias
upsertMeetResult
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-meet-result-by-id
Create or update a local meet result or imported-result override
atlas upsert-meet-result-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
upsertMeetResultById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Meet Plans
atlas create-meet-plan
Create a meet-day worksheet for an athlete
atlas create-meet-plan --athlete-name <athleteName> --body <JSON|->- Permission
write- Alias
createMeetPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas create-meet-plan-by-id
Create a meet-day worksheet for an athlete
atlas create-meet-plan-by-id --athlete-id <athleteId> --body <JSON|->- Permission
write- Alias
createMeetPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-meet-plan
Delete one meet-day worksheet
atlas delete-meet-plan --athlete-name <athleteName> --meet-plan-id <meetPlanId>- Permission
athlete_data_delete- Alias
deleteMeetPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
atlas delete-meet-plan-by-id
Delete one meet-day worksheet
atlas delete-meet-plan-by-id --athlete-id <athleteId> --meet-plan-id <meetPlanId>- Permission
athlete_data_delete- Alias
deleteMeetPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
atlas export-meet-plan
Export the full meet-plan page (worksheet plus recent lifts, check-in flags, last meet, and two-year history) as JSON or PDF
atlas export-meet-plan --athlete-name <athleteName> --meet-plan-id <meetPlanId> --today <today>- Permission
read- Alias
exportMeetPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
--today <today>Required | Anchor date for recent-lift and meet-history windows |
--format <format> | Use pdf or send Accept: application/pdf for a binary PDF download One of "json", "pdf". |
atlas export-meet-plan-by-id
Export the full meet-plan page (worksheet plus recent lifts, check-in flags, last meet, and two-year history) as JSON or PDF
atlas export-meet-plan-by-id --athlete-id <athleteId> --meet-plan-id <meetPlanId> --today <today>- Permission
read- Alias
exportMeetPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
--today <today>Required | Anchor date for recent-lift and meet-history windows |
--format <format> | Use pdf or send Accept: application/pdf for a binary PDF download One of "json", "pdf". |
atlas get-meet-plan
Get one meet-day worksheet
atlas get-meet-plan --athlete-name <athleteName> --meet-plan-id <meetPlanId>- Permission
read- Alias
getMeetPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
atlas get-meet-plan-by-id
Get one meet-day worksheet
atlas get-meet-plan-by-id --athlete-id <athleteId> --meet-plan-id <meetPlanId>- Permission
read- Alias
getMeetPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
atlas list-meet-plans
List an athlete's meet-day worksheets
atlas list-meet-plans --athlete-name <athleteName>- Permission
read- Alias
listMeetPlans
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
atlas list-meet-plans-by-id
List an athlete's meet-day worksheets
atlas list-meet-plans-by-id --athlete-id <athleteId>- Permission
read- Alias
listMeetPlansById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
atlas update-meet-plan
Replace one meet-day worksheet
atlas update-meet-plan --athlete-name <athleteName> --meet-plan-id <meetPlanId> --body <JSON|->- Permission
write- Alias
updateMeetPlan
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas update-meet-plan-by-id
Replace one meet-day worksheet
atlas update-meet-plan-by-id --athlete-id <athleteId> --meet-plan-id <meetPlanId> --body <JSON|->- Permission
write- Alias
updateMeetPlanById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--meet-plan-id <meetPlanId>Required | path parameter: meetPlanId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Week Notes
atlas delete-athlete-week-note
Remove the coach note for the week containing a date
atlas delete-athlete-week-note --athlete-name <athleteName> --week-start-date <weekStartDate>- Permission
athlete_data_delete- Alias
deleteAthleteWeekNote
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--week-start-date <weekStartDate>Required | path parameter: weekStartDate |
atlas delete-athlete-week-note-by-id
Remove the coach note for the week containing a date
atlas delete-athlete-week-note-by-id --athlete-id <athleteId> --week-start-date <weekStartDate>- Permission
athlete_data_delete- Alias
deleteAthleteWeekNoteById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--week-start-date <weekStartDate>Required | path parameter: weekStartDate |
atlas upsert-athlete-week-note
Set the coach note for the week containing a date
atlas upsert-athlete-week-note --athlete-name <athleteName> --week-start-date <weekStartDate> --body <JSON|->- Permission
write- Alias
upsertAthleteWeekNote
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--week-start-date <weekStartDate>Required | path parameter: weekStartDate |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas upsert-athlete-week-note-by-id
Set the coach note for the week containing a date
atlas upsert-athlete-week-note-by-id --athlete-id <athleteId> --week-start-date <weekStartDate> --body <JSON|->- Permission
write- Alias
upsertAthleteWeekNoteById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--week-start-date <weekStartDate>Required | path parameter: weekStartDate |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Session Check-Ins
atlas list-session-check-ins
List pre- and post-workout check-ins for an athlete
atlas list-session-check-ins --athlete-name <athleteName>- Permission
read- Alias
listSessionCheckIns
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--from <from> | query parameter: from |
--to <to> | query parameter: to |
--limit <limit> | query parameter: limit |
atlas list-session-check-ins-by-id
List pre- and post-workout check-ins for an athlete
atlas list-session-check-ins-by-id --athlete-id <athleteId>- Permission
read- Alias
listSessionCheckInsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--from <from> | query parameter: from |
--to <to> | query parameter: to |
--limit <limit> | query parameter: limit |
Wearables And Nutrition
atlas get-nutrition-food-entries
Fetch the individual foods an athlete logged on one day
atlas get-nutrition-food-entries --athlete-name <athleteName> --date <date>- Permission
wearables_read- Alias
getNutritionFoodEntries
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--date <date>Required | query parameter: date |
atlas get-nutrition-food-entries-by-id
Fetch the individual foods an athlete logged on one day
atlas get-nutrition-food-entries-by-id --athlete-id <athleteId> --date <date>- Permission
wearables_read- Alias
getNutritionFoodEntriesById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--date <date>Required | query parameter: date |
atlas get-nutrition-metrics
Fetch live daily calorie and macronutrient totals from an athlete's connected nutrition app
atlas get-nutrition-metrics --athlete-name <athleteName> --from <from> --to <to>- Permission
wearables_read- Alias
getNutritionMetrics
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--from <from>Required | Inclusive start date; the range may not exceed 366 days |
--to <to>Required | query parameter: to |
atlas get-nutrition-metrics-by-id
Fetch live daily calorie and macronutrient totals from an athlete's connected nutrition app
atlas get-nutrition-metrics-by-id --athlete-id <athleteId> --from <from> --to <to>- Permission
wearables_read- Alias
getNutritionMetricsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--from <from>Required | Inclusive start date; the range may not exceed 366 days |
--to <to>Required | query parameter: to |
atlas get-oura-metrics
Fetch live Oura sleep and readiness metrics for an athlete
atlas get-oura-metrics --athlete-name <athleteName> --from <from> --to <to>- Endpoint
GET /athletes/{athleteName}/oura- Permission
wearables_read- Alias
getOuraMetrics
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--from <from>Required | query parameter: from |
--to <to>Required | query parameter: to |
atlas get-oura-metrics-by-id
Fetch live Oura sleep and readiness metrics for an athlete
atlas get-oura-metrics-by-id --athlete-id <athleteId> --from <from> --to <to>- Permission
wearables_read- Alias
getOuraMetricsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--from <from>Required | query parameter: from |
--to <to>Required | query parameter: to |
atlas get-whoop-metrics
Fetch live WHOOP recovery, sleep, and strain metrics for an athlete
atlas get-whoop-metrics --athlete-name <athleteName> --from <from> --to <to>- Permission
wearables_read- Alias
getWhoopMetrics
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--from <from>Required | Inclusive start date; the WHOOP range may not exceed 90 days |
--to <to>Required | query parameter: to |
atlas get-whoop-metrics-by-id
Fetch live WHOOP recovery, sleep, and strain metrics for an athlete
atlas get-whoop-metrics-by-id --athlete-id <athleteId> --from <from> --to <to>- Permission
wearables_read- Alias
getWhoopMetricsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--from <from>Required | Inclusive start date; the WHOOP range may not exceed 90 days |
--to <to>Required | query parameter: to |
Athlete Workouts
atlas get-workouts-for-analytics
Get flattened programmed workouts for an athlete
atlas get-workouts-for-analytics --athlete-name <athleteName>- Permission
read- Alias
getWorkoutsForAnalytics
| Flag | Details |
|---|---|
--athlete-name <athleteName>Required | path parameter: athleteName |
--program-name <programName> | query parameter: programName |
atlas get-workouts-for-analytics-by-id
Get flattened programmed workouts for an athlete
atlas get-workouts-for-analytics-by-id --athlete-id <athleteId>- Permission
read- Alias
getWorkoutsForAnalyticsById
| Flag | Details |
|---|---|
--athlete-id <athleteId>Required | path parameter: athleteId |
--program-name <programName> | query parameter: programName |
Programs
atlas add-program-day
Add a workout day to a program week
atlas add-program-day --program-id <programId> --week-number <weekNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
addProgramDay
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas add-program-exercise
Add an exercise to a workout day
atlas add-program-exercise --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
addProgramExercise
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas add-program-week
Add a week and update weekCount automatically
atlas add-program-week --program-id <programId> --revision <If-Match> --body <JSON|->- Endpoint
POST /programs/{programId}/weeks- Permission
write- Alias
addProgramWeek
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas check-program-exists
Check for a program by athlete, name, and start date
atlas check-program-exists --program-name <programName> --start-date <startDate>- Endpoint
GET /programs/exists- Permission
read- Alias
checkProgramExists
| Flag | Details |
|---|---|
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
--program-name <programName>Required | query parameter: programName |
--start-date <startDate>Required | query parameter: startDate |
atlas complete-workout-session
Atomically complete a workout and save its rating and intensity
atlas complete-workout-session --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
completeWorkoutSession
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas copy-program-day
Copy a day to any week while resetting athlete completion data
atlas copy-program-day --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
copyProgramDay
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas copy-program-week
Copy a week while resetting athlete completion data
atlas copy-program-week --program-id <programId> --week-number <weekNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
copyProgramWeek
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas create-program
Create a normalized, idempotent program; numbering, completion flags, targets, and totals receive defaults
atlas create-program --body <JSON|->- Endpoint
POST /programs- Permission
write- Alias
createProgram
| Flag | Details |
|---|---|
--idempotency-key <Idempotency-Key> | header parameter: Idempotency-Key |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-program
Delete a program
atlas delete-program --program-id <programId> --revision <If-Match>- Endpoint
DELETE /programs/{programId}- Permission
program_delete- Alias
deleteProgram
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
atlas delete-program-day
Delete a workout day
atlas delete-program-day --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match>- Permission
workout_delete- Alias
deleteProgramDay
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
atlas delete-program-exercise
Delete an exercise from a workout day
atlas delete-program-exercise --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --exercise-number <exerciseNumber> --revision <If-Match>- Permission
workout_delete- Alias
deleteProgramExercise
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--exercise-number <exerciseNumber>Required | path parameter: exerciseNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
atlas delete-program-week
Delete a week
atlas delete-program-week --program-id <programId> --week-number <weekNumber> --revision <If-Match>- Permission
workout_delete- Alias
deleteProgramWeek
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
atlas get-current-program
Get the current program, optionally for one athlete
atlas get-current-program --today <today>- Endpoint
GET /programs/current- Permission
read- Alias
getCurrentProgram
| Flag | Details |
|---|---|
--today <today>Required | query parameter: today |
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
atlas get-current-program-summary
Summarize one athlete's current program as the console overview does
atlas get-current-program-summary --today <today>- Endpoint
GET /programs/current/summary- Permission
read- Alias
getCurrentProgramSummary
| Flag | Details |
|---|---|
--today <today>Required | query parameter: today |
--athlete-id <athleteId> | query parameter: athleteId |
--athlete-name <athleteName> | query parameter: athleteName |
atlas get-program
Get a complete program
atlas get-program --program-id <programId>- Endpoint
GET /programs/{programId}- Permission
read- Alias
getProgram
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--if-none-match <If-None-Match> | Return 304 when this revision ETag is still current |
atlas list-programs
List programs, optionally filtered by athleteName
atlas list-programs- Endpoint
GET /programs- Permission
read- Alias
listPrograms
| Flag | Details |
|---|---|
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
--limit <limit> | query parameter: limit |
--cursor <cursor> | query parameter: cursor |
--all | Follow every cursor and combine all pages |
atlas move-program-day
Move a workout day to another date, swapping with an occupied date
atlas move-program-day --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
moveProgramDay
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas patch-program-day
Update selected workout-day fields without replacing the program
atlas patch-program-day --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
patchProgramDay
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas patch-program-exercise
Update selected exercise and set fields
atlas patch-program-exercise --program-id <programId> --week-number <weekNumber> --day-number <dayNumber> --exercise-number <exerciseNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
patchProgramExercise
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--day-number <dayNumber>Required | path parameter: dayNumber |
--exercise-number <exerciseNumber>Required | path parameter: exerciseNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas patch-program-metadata
Update athlete, name, start date, rep targets, rep target changes, or weekly totals without replacing workouts
atlas patch-program-metadata --program-id <programId> --revision <If-Match> --body <JSON|->- Endpoint
PATCH /programs/{programId}- Permission
write- Alias
patchProgramMetadata
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas patch-program-week
Renumber a week or update its total
atlas patch-program-week --program-id <programId> --week-number <weekNumber> --revision <If-Match> --body <JSON|->- Permission
write- Alias
patchProgramWeek
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--week-number <weekNumber>Required | path parameter: weekNumber |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas update-program
Replace a complete program
atlas update-program --program-id <programId> --revision <If-Match> --body <JSON|->- Endpoint
PUT /programs/{programId}- Permission
write- Alias
updateProgram
| Flag | Details |
|---|---|
--program-id <programId>Required | path parameter: programId |
--revision <If-Match>Required | Revision returned by GET /programs/{programId} |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas validate-program
Normalize and validate a program without saving it
atlas validate-program --body <JSON|->- Endpoint
POST /programs/validate- Permission
read- Alias
validateProgram
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Templates
atlas assign-template
Assign a template to an athlete as a dated program
atlas assign-template --template-id <templateId> --body <JSON|->- Permission
write- Alias
assignTemplate
| Flag | Details |
|---|---|
--template-id <templateId>Required | path parameter: templateId |
--idempotency-key <Idempotency-Key> | header parameter: Idempotency-Key |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas check-template-exists
Check whether a template name exists
atlas check-template-exists --program-name <programName>- Endpoint
GET /templates/exists- Permission
read- Alias
checkTemplateExists
| Flag | Details |
|---|---|
--program-name <programName>Required | query parameter: programName |
atlas delete-template
Delete a reusable template
atlas delete-template --template-id <templateId> --revision <If-Match>- Endpoint
DELETE /templates/{templateId}- Permission
program_delete- Alias
deleteTemplate
| Flag | Details |
|---|---|
--template-id <templateId>Required | path parameter: templateId |
--revision <If-Match>Required | Required when replacing, moving, or deleting an existing template |
atlas get-template
Get a reusable template
atlas get-template --template-id <templateId>- Endpoint
GET /templates/{templateId}- Permission
read- Alias
getTemplate
| Flag | Details |
|---|---|
--template-id <templateId>Required | path parameter: templateId |
--if-none-match <If-None-Match> | Return 304 when this revision ETag is still current |
atlas list-templates
List reusable program templates
atlas list-templates- Endpoint
GET /templates- Permission
read- Alias
listTemplates
| Flag | Details |
|---|---|
--limit <limit> | query parameter: limit |
--cursor <cursor> | query parameter: cursor |
--all | Follow every cursor and combine all pages |
atlas save-template
Create or update a reusable template by name
atlas save-template --body <JSON|->- Endpoint
POST /templates- Permission
write- Alias
saveTemplate
| Flag | Details |
|---|---|
--revision <If-Match> | Required when replacing, moving, or deleting an existing template |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas set-template-folder
Move a template into a folder or to the root
atlas set-template-folder --template-id <templateId> --revision <If-Match> --body <JSON|->- Permission
write- Alias
setTemplateFolder
| Flag | Details |
|---|---|
--template-id <templateId>Required | path parameter: templateId |
--revision <If-Match>Required | Required when replacing, moving, or deleting an existing template |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Template Folders
atlas create-template-folder
Create a program-library folder
atlas create-template-folder --body <JSON|->- Endpoint
POST /template-folders- Permission
write- Alias
createTemplateFolder
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-template-folder
Delete a program-library folder and move its templates to the root
atlas delete-template-folder --folder-id <folderId>- Permission
write- Alias
deleteTemplateFolder
| Flag | Details |
|---|---|
--folder-id <folderId>Required | path parameter: folderId |
atlas list-template-folders
List program-library folders owned by the coach
atlas list-template-folders- Endpoint
GET /template-folders- Permission
read- Alias
listTemplateFolders
atlas update-template-folder
Rename a program-library folder
atlas update-template-folder --folder-id <folderId> --body <JSON|->- Permission
write- Alias
updateTemplateFolder
| Flag | Details |
|---|---|
--folder-id <folderId>Required | path parameter: folderId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Exercise Library
atlas add-exercise
Add an exercise. The Atlas administrator writes the Atlas library. A club admin or assistant writes that club's library. A YouTube video URL is required.
atlas add-exercise --body <JSON|->- Endpoint
POST /exercises- Permission
write- Alias
addExercise
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas delete-exercise
Delete an exercise. The Atlas administrator deletes from the Atlas library. A club admin deletes from that club's library.
atlas delete-exercise --name <name>- Endpoint
DELETE /exercises/{name}- Permission
write- Alias
deleteExercise
| Flag | Details |
|---|---|
--name <name>Required | path parameter: name |
atlas get-exercise-by-name
Get an exercise from the Atlas or club library visible to this token
atlas get-exercise-by-name --name <name>- Endpoint
GET /exercises/{name}- Permission
read- Alias
getExerciseByName
| Flag | Details |
|---|---|
--name <name>Required | path parameter: name |
atlas list-exercises
Browse or search the Atlas and club exercise libraries visible to this token
atlas list-exercises- Endpoint
GET /exercises- Permission
read- Alias
listExercises
| Flag | Details |
|---|---|
--search <search> | query parameter: search |
--limit <limit> | query parameter: limit |
--cursor <cursor> | query parameter: cursor |
--all | Follow every cursor and combine all pages |
atlas update-exercise
Update an exercise. The Atlas administrator updates the Atlas library. A club admin updates that club's library. An assistant updates only exercises they added.
atlas update-exercise --name <name> --body <JSON|->- Endpoint
PATCH /exercises/{name}- Permission
write- Alias
updateExercise
| Flag | Details |
|---|---|
--name <name>Required | path parameter: name |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Analytics And Activity
atlas get-analytics
Get weekly training analytics for the coach or one athlete
atlas get-analytics --range <range> --today <today>- Endpoint
GET /analytics- Permission
read- Alias
getAnalytics
| Flag | Details |
|---|---|
--range <range>Required | query parameter: range One of "1mo", "3mo", "6mo", "1yr", "All". |
--today <today>Required | query parameter: today |
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
atlas get-coach-dashboard
Get the latest-program summary for every athlete
atlas get-coach-dashboard- Endpoint
GET /dashboard- Permission
read- Alias
getCoachDashboard
atlas get-completed-days
List completed workout days
atlas get-completed-days- Endpoint
GET /completed-days- Permission
read- Alias
getCompletedDays
| Flag | Details |
|---|---|
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
--limit <limit> | query parameter: limit |
--time-of-day <timeOfDay> | query parameter: timeOfDay One of "morning", "afternoon", "evening". |
atlas get-schedule-summaries
Get each athlete's last scheduled date and days remaining
atlas get-schedule-summaries --today <today>- Endpoint
GET /schedule-summaries- Permission
read- Alias
getScheduleSummaries
| Flag | Details |
|---|---|
--today <today>Required | query parameter: today |
atlas get-session-activity
List sessions with logged work or completion, with optional planned sessions
atlas get-session-activity- Endpoint
GET /session-activity- Permission
read- Alias
getSessionActivity
| Flag | Details |
|---|---|
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
--limit <limit> | query parameter: limit |
--include-planned <includePlanned> | query parameter: includePlanned |
atlas get-time-of-day-analytics
Compare completed sessions by the part of the athlete's day they started in
atlas get-time-of-day-analytics --range <range> --today <today>- Endpoint
GET /analytics/time-of-day- Permission
read- Alias
getTimeOfDayAnalytics
| Flag | Details |
|---|---|
--range <range>Required | query parameter: range One of "1mo", "3mo", "6mo", "1yr", "All". |
--today <today>Required | query parameter: today |
--athlete-name <athleteName> | query parameter: athleteName |
--athlete-id <athleteId> | query parameter: athleteId |
Coach Settings
atlas get-coach-settings
Get coach roster display settings
atlas get-coach-settings- Endpoint
GET /settings- Permission
read- Alias
getCoachSettings
atlas update-coach-settings
Update coach roster display settings
atlas update-coach-settings --body <JSON|->- Endpoint
PATCH /settings- Permission
write- Alias
updateCoachSettings
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Athlete Comments
atlas list-athlete-comments
List athlete comments on the token owner's roster, newest first
atlas list-athlete-comments- Endpoint
GET /comments- Permission
read- Alias
listAthleteComments
| Flag | Details |
|---|---|
--athlete-id <athleteId> | query parameter: athleteId |
--since-date <sinceDate> | Only sessions on or after this date |
--limit <limit> | query parameter: limit |
--unread-only <unreadOnly> | query parameter: unreadOnly |
atlas mark-all-athlete-comments-read
Mark one batch of unread athlete comments read
atlas mark-all-athlete-comments-read- Endpoint
POST /comments/read-all- Permission
write- Alias
markAllAthleteCommentsRead
| Flag | Details |
|---|---|
--body <JSON|-> | JSON object request body, or - to read stdin |
--body-file <PATH> | Read the JSON object request body from a file |
atlas mark-athlete-comment-read
Mark one athlete comment read for the token owner
atlas mark-athlete-comment-read --comment-key <commentKey>- Endpoint
POST /comments/{commentKey}/read- Permission
write- Alias
markAthleteCommentRead
| Flag | Details |
|---|---|
--comment-key <commentKey>Required | A comment key from GET /comments, percent-encoded |
atlas mark-athlete-comment-unread
Mark one athlete comment unread for the token owner
atlas mark-athlete-comment-unread --comment-key <commentKey>- Permission
write- Alias
markAthleteCommentUnread
| Flag | Details |
|---|---|
--comment-key <commentKey>Required | A comment key from GET /comments, percent-encoded |
atlas reply-to-athlete-comment
Reply to an athlete comment with a direct message
atlas reply-to-athlete-comment --comment-key <commentKey> --idempotency-key <Idempotency-Key> --body <JSON|->- Permission
messaging_write- Alias
replyToAthleteComment
| Flag | Details |
|---|---|
--comment-key <commentKey>Required | A comment key from GET /comments, percent-encoded |
--idempotency-key <Idempotency-Key>Required | Stable caller-generated key; retries return the original message |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
Messaging
atlas cancel-scheduled-message
Cancel a scheduled message created by this token owner
atlas cancel-scheduled-message --message-id <messageId>- Permission
messaging_write- Alias
cancelScheduledMessage
| Flag | Details |
|---|---|
--message-id <messageId>Required | path parameter: messageId |
atlas create-direct-message
Create or find a 1-1 direct message, including a thread with yourself
atlas create-direct-message --body <JSON|->- Endpoint
POST /messages/dms- Permission
messaging_write- Alias
createDirectMessage
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas create-message-attachment-upload
Create an authenticated upload for a photo, voice message, or file
atlas create-message-attachment-upload --conversation-id <conversationId> --body <JSON|->- Permission
messaging_write- Alias
createMessageAttachmentUpload
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas create-message-group
Create a custom in-club messaging group
atlas create-message-group --body <JSON|->- Endpoint
POST /messages/groups- Permission
messaging_write- Alias
createMessageGroup
| Flag | Details |
|---|---|
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas create-message-video-upload
Create presigned video and optional poster uploads
atlas create-message-video-upload --conversation-id <conversationId> --body <JSON|->- Permission
messaging_write- Alias
createMessageVideoUpload
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas finalize-message-attachment
Finalize a completed messaging attachment upload
atlas finalize-message-attachment --upload-authorization-id <uploadAuthorizationId> --body <JSON|->- Permission
messaging_write- Alias
finalizeMessageAttachment
| Flag | Details |
|---|---|
--upload-authorization-id <uploadAuthorizationId>Required | path parameter: uploadAuthorizationId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas finalize-message-video
Finalize a completed messaging video upload
atlas finalize-message-video --upload-authorization-id <uploadAuthorizationId> --body <JSON|->- Permission
messaging_write- Alias
finalizeMessageVideo
| Flag | Details |
|---|---|
--upload-authorization-id <uploadAuthorizationId>Required | path parameter: uploadAuthorizationId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas get-message-attachment-transcript
Read a voice message's or video's transcript and summary
atlas get-message-attachment-transcript --attachment-id <attachmentId>- Permission
messaging_read- Alias
getMessageAttachmentTranscript
| Flag | Details |
|---|---|
--attachment-id <attachmentId>Required | path parameter: attachmentId |
atlas get-message-video-playback
Create a short-lived video playback grant
atlas get-message-video-playback --attachment-id <attachmentId>- Permission
messaging_read- Alias
getMessageVideoPlayback
| Flag | Details |
|---|---|
--attachment-id <attachmentId>Required | path parameter: attachmentId |
atlas list-conversation-messages
List messages in a conversation
atlas list-conversation-messages --conversation-id <conversationId>- Permission
messaging_read- Alias
listConversationMessages
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--cursor <cursor> | query parameter: cursor |
--limit <limit> | query parameter: limit |
--all | Follow every cursor and combine all pages |
atlas list-message-conversations
List messaging conversations in the token's club
atlas list-message-conversations- Endpoint
GET /messages/conversations- Permission
messaging_read- Alias
listMessageConversations
| Flag | Details |
|---|---|
--cursor <cursor> | query parameter: cursor |
--limit <limit> | query parameter: limit |
--archived <archived> | query parameter: archived |
--all | Follow every cursor and combine all pages |
atlas list-scheduled-messages
List this token owner's scheduled messages in the club, soonest first
atlas list-scheduled-messages- Endpoint
GET /messages/scheduled- Permission
messaging_read- Alias
listScheduledMessages
atlas mark-conversation-read
Mark a conversation read
atlas mark-conversation-read --conversation-id <conversationId>- Permission
messaging_write- Alias
markConversationRead
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--body <JSON|-> | JSON object request body, or - to read stdin |
--body-file <PATH> | Read the JSON object request body from a file |
atlas send-conversation-message
Send a message or reply in a conversation
atlas send-conversation-message --conversation-id <conversationId> --idempotency-key <Idempotency-Key> --body <JSON|->- Permission
messaging_write- Alias
sendConversationMessage
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--idempotency-key <Idempotency-Key>Required | Stable caller-generated key; retries return the original message |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas update-conversation-state
Mute, archive, or restore a conversation
atlas update-conversation-state --conversation-id <conversationId> --body <JSON|->- Permission
messaging_write- Alias
updateConversationState
| Flag | Details |
|---|---|
--conversation-id <conversationId>Required | path parameter: conversationId |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |
atlas update-scheduled-message
Edit, reschedule, or send now a scheduled message created by this token owner
atlas update-scheduled-message --message-id <messageId> --body <JSON|->- Permission
messaging_write- Alias
updateScheduledMessage
| Flag | Details |
|---|---|
--message-id <messageId>Required | path parameter: messageId |
--idempotency-key <Idempotency-Key> | Required when text is given; a retry with the same key applies the edit once |
--body <JSON|->This or the other body flag | JSON object request body, or - to read stdin |
--body-file <PATH>This or the other body flag | Read the JSON object request body from a file |