Skip to content

SDK operations

Each named operation below becomes a typed method on the client: sdk.<operationName>(variables). Native clients (Swift, Kotlin) generate from the same documents and schema.graphql.

sdk.adminDashboard() — query

query AdminDashboard {
admin {
inviteOnly
users {
id
name
email
isAdmin
disabled
isGuest
createdAt
workouts
lastActive
}
trainingNow {
userId
name
workoutName
exerciseId
setsDone
setsTotal
updatedAt
}
invites {
code
createdAt
usedBy
usedAt
revokedAt
}
}
}

sdk.adminUser(variables) — query

query AdminUser($id: ID!) {
admin {
user(id: $id) {
id
workouts {
...WorkoutFields
}
bodyweight {
date
weight
}
}
}
}

sdk.adminCreateInvite() — mutation

mutation AdminCreateInvite {
adminCreateInvite {
code
createdAt
}
}

sdk.adminRevokeInvite(variables) — mutation

mutation AdminRevokeInvite($code: String!) {
adminRevokeInvite(code: $code)
}

sdk.adminSetUserDisabled(variables) — mutation

mutation AdminSetUserDisabled($userId: ID!, $disabled: Boolean!, $reason: String) {
adminSetUserDisabled(userId: $userId, disabled: $disabled, reason: $reason)
}

sdk.adminSignIns(variables) — query

query AdminSignIns($limit: Int) {
admin {
signIns(limit: $limit) {
userId
name
email
isGuest
at
method
country
device
}
}
}

sdk.bodyweight(variables) — query

query Bodyweight($from: Date, $to: Date) {
viewer {
id
bodyweight(from: $from, to: $to) {
date
weight
}
settings {
targetWeight
unit
}
}
}

sdk.logBodyweight(variables) — mutation

mutation LogBodyweight($input: BodyweightInput!) {
logBodyweight(input: $input) {
date
weight
}
}

sdk.deleteBodyweight(variables) — mutation

mutation DeleteBodyweight($date: Date!) {
deleteBodyweight(date: $date)
}

sdk.backup() — query

query Backup {
viewer {
id
backup
}
}

sdk.restoreBackup(variables) — mutation

mutation RestoreBackup($backup: JSON!) {
restoreBackup(backup: $backup)
}

sdk.resetData() — mutation

mutation ResetData {
resetData
}

sdk.importHistory(variables) — mutation

mutation ImportHistory($input: ImportHistoryInput!) {
importHistory(input: $input) {
workouts
sets
customExercises
bodyweight
skippedDays
}
}

sdk.exercises(variables) — query

query Exercises($includeDeleted: Boolean) {
viewer {
id
customExercises(includeDeleted: $includeDeleted) {
...CustomExerciseFields
}
exerciseSettings {
...ExerciseSettingFields
}
}
}

sdk.saveCustomExercise(variables) — mutation

mutation SaveCustomExercise($input: CustomExerciseInput!) {
saveCustomExercise(input: $input) {
...CustomExerciseFields
}
}

sdk.deleteCustomExercise(variables) — mutation

mutation DeleteCustomExercise($id: ID!) {
deleteCustomExercise(id: $id)
}

sdk.setFavourite(variables) — mutation

mutation SetFavourite($exerciseId: ID!, $favourite: Boolean!) {
setFavourite(exerciseId: $exerciseId, favourite: $favourite)
}

sdk.setExerciseSetting(variables) — mutation

mutation SetExerciseSetting($input: ExerciseSettingInput!) {
setExerciseSetting(input: $input) {
...ExerciseSettingFields
}
}

sdk.exerciseStats(variables) — query

query ExerciseStats($exerciseId: ID!) {
viewer {
id
exerciseStats(exerciseId: $exerciseId) {
exerciseId
best
bestOneRm {
value
weight
reps
date
}
points {
date
top
topReps
oneRm
effortRir
volume
}
}
}
}

sdk.setCustomExercisePhoto(variables) — mutation

mutation SetCustomExercisePhoto($exerciseId: ID!, $image: String!) {
setCustomExercisePhoto(exerciseId: $exerciseId, image: $image) {
...CustomExerciseFields
}
}

sdk.removeCustomExercisePhoto(variables) — mutation

mutation RemoveCustomExercisePhoto($exerciseId: ID!) {
removeCustomExercisePhoto(exerciseId: $exerciseId) {
...CustomExerciseFields
}
}

sdk.plan() — query

query Plan {
viewer {
id
routines {
...RoutineFields
}
week {
weekday
routineId
}
}
}

sdk.day(variables) — query

query Day($date: Date) {
viewer {
id
day(date: $date) {
date
routineId
isOverride
routine {
...RoutineFields
}
workouts {
id
name
finishedAt
}
}
}
}

sdk.overrides(variables) — query

query Overrides($from: Date, $to: Date) {
viewer {
id
overrides(from: $from, to: $to) {
date
routineId
}
}
}

sdk.saveRoutine(variables) — mutation

mutation SaveRoutine($input: RoutineInput!, $position: Int) {
saveRoutine(input: $input, position: $position) {
...RoutineFields
}
}

sdk.deleteRoutine(variables) — mutation

mutation DeleteRoutine($id: ID!) {
deleteRoutine(id: $id)
}

sdk.reorderRoutines(variables) — mutation

mutation ReorderRoutines($ids: [ID!]!) {
reorderRoutines(ids: $ids)
}

sdk.setWeekday(variables) — mutation

mutation SetWeekday($weekday: Int!, $routineId: ID) {
setWeekday(weekday: $weekday, routineId: $routineId) {
weekday
routineId
}
}

sdk.setDayOverride(variables) — mutation

mutation SetDayOverride($date: Date!, $routineId: ID) {
setDayOverride(date: $date, routineId: $routineId) {
date
routineId
}
}

sdk.clearDayOverride(variables) — mutation

mutation ClearDayOverride($date: Date!) {
clearDayOverride(date: $date)
}

sdk.rescheduleDay(variables) — mutation

mutation RescheduleDay($from: Date!, $to: Date!) {
rescheduleDay(from: $from, to: $to) {
date
routineId
}
}

sdk.loadStarterPlan(variables) — mutation

mutation LoadStarterPlan($kind: StarterKind!) {
loadStarterPlan(kind: $kind) {
...RoutineFields
}
}

sdk.planFile() — query

query PlanFile {
viewer {
id
planFile
}
}

sdk.importPlan(variables) — mutation

mutation ImportPlan($plan: JSON!, $takeWeek: Boolean) {
importPlan(plan: $plan, takeWeek: $takeWeek) {
routines
customExercises
dropped
weekReplaced
}
}

sdk.createPlanShare() — mutation

mutation CreatePlanShare {
createPlanShare {
token
expiresAt
}
}

sdk.sharedPlan(variables) — query

query SharedPlan($token: String!) {
sharedPlan(token: $token) {
ownerName
plan
expiresAt
}
}

sdk.importSharedPlan(variables) — mutation

mutation ImportSharedPlan($token: String!, $takeWeek: Boolean) {
importSharedPlan(token: $token, takeWeek: $takeWeek)
}

sdk.subscribePush(variables) — mutation

mutation SubscribePush($input: PushSubscriptionInput!) {
subscribePush(input: $input)
}

sdk.unsubscribePush(variables) — mutation

mutation UnsubscribePush($endpoint: String!) {
unsubscribePush(endpoint: $endpoint)
}

sdk.sendTestPush() — mutation

mutation SendTestPush {
sendTestPush
}

sdk.scheduleRestPush(variables) — mutation

mutation ScheduleRestPush($seconds: Int!, $title: String!, $body: String!) {
scheduleRestPush(seconds: $seconds, title: $title, body: $body)
}

sdk.cancelRestPush() — mutation

mutation CancelRestPush {
cancelRestPush
}

sdk.activity(variables) — query

query Activity($from: Date, $to: Date) {
viewer {
id
streak
activity(from: $from, to: $to) {
date
minutes
volume
}
}
}

sdk.muscleBalance(variables) — query

query MuscleBalance($from: Date, $to: Date, $hardOnly: Boolean) {
viewer {
id
muscleBalance(from: $from, to: $to, hardOnly: $hardOnly) {
muscles {
muscle
sets
}
untrained
}
}
}

sdk.effort(variables) — query

query Effort($from: Date, $to: Date) {
viewer {
id
effort(from: $from, to: $to) {
totalSets
ratedSets
averageRir
nearFailureShare
distribution
weeks {
weekStart
averageRir
ratedSets
totalSets
}
}
}
}

sdk.muscleRecovery() — query

query MuscleRecovery {
viewer {
id
muscleRecovery {
muscle
fatigue
strength
lastTrained
daysSince
}
}
}

sdk.liftBalance() — query

query LiftBalance {
viewer {
id
liftBalance {
lifts {
exerciseId
oneRm
ratio
share
}
weakest
}
}
}

sdk.me() — query

query Me {
viewer {
id
name
email
image
isAnonymous
isAdmin
settings {
...SettingsFields
}
}
config {
...ConfigFields
}
}

sdk.config() — query

query Config {
config {
...ConfigFields
}
}

sdk.updateSettings(variables) — mutation

mutation UpdateSettings($input: SettingsInput!) {
updateSettings(input: $input) {
...SettingsFields
}
}

sdk.connectedApps() — query

query ConnectedApps {
viewer {
id
connectedApps {
clientId
name
uri
icon
connectedAt
}
}
}

sdk.disconnectApp(variables) — mutation

mutation DisconnectApp($clientId: ID!) {
disconnectApp(clientId: $clientId)
}

sdk.apiKeys() — query

query ApiKeys {
viewer {
id
apiKeys {
...ApiKeyFields
}
}
}

sdk.createApiKey(variables) — mutation

mutation CreateApiKey($input: CreateApiKeyInput!) {
createApiKey(input: $input) {
key
apiKey {
...ApiKeyFields
}
}
}

sdk.revokeApiKey(variables) — mutation

mutation RevokeApiKey($id: ID!) {
revokeApiKey(id: $id)
}

sdk.setPassword(variables) — mutation

mutation SetPassword($password: String!) {
setPassword(password: $password)
}

sdk.signedInSessions() — query

query SignedInSessions {
viewer {
id
sessions {
...SignedInSessionFields
}
}
}

sdk.revokeSession(variables) — mutation

mutation RevokeSession($id: ID!) {
revokeSession(id: $id)
}

sdk.hevyWorkouts(variables) — query

query HevyWorkouts($apiKey: String!, $page: Int!) {
viewer {
id
hevyWorkouts(apiKey: $apiKey, page: $page) {
page
pageCount
workouts
}
}
}

sdk.nextTargets(variables) — query

query NextTargets($routineId: ID!) {
viewer {
id
nextTargets(routineId: $routineId) {
itemId
exerciseId
mode
supersetGroup
restSec
rule
perSide
bodyweight
reason {
code
params
}
sets {
kind
weight
reps
durationSec
speed
amrap
}
}
}
}

sdk.activeWorkout() — query

query ActiveWorkout {
viewer {
id
activeWorkout {
...WorkoutFields
}
}
}

sdk.workouts(variables) — query

query Workouts($from: Date, $to: Date, $limit: Int, $offset: Int) {
viewer {
id
workouts(from: $from, to: $to, limit: $limit, offset: $offset) {
...WorkoutFields
}
}
}

sdk.workout(variables) — query

query Workout($id: ID!) {
viewer {
id
workout(id: $id) {
...WorkoutFields
}
}
}

sdk.saveWorkout(variables) — mutation

mutation SaveWorkout($input: WorkoutInput!) {
saveWorkout(input: $input) {
id
}
}

sdk.finishWorkout(variables) — mutation

mutation FinishWorkout($input: WorkoutInput!) {
finishWorkout(input: $input) {
workout {
...WorkoutFields
}
records {
exerciseId
kind
value
previous
}
muscles {
muscle
sets
}
}
}

sdk.deleteWorkout(variables) — mutation

mutation DeleteWorkout($id: ID!) {
deleteWorkout(id: $id)
}

sdk.heartbeat(variables) — mutation

mutation Heartbeat($input: HeartbeatInput!) {
heartbeat(input: $input)
}

sdk.pinnedNotes() — query

query PinnedNotes {
viewer {
id
pinnedNotes {
exerciseId
note
date
}
}
}