Coaching API

A Personal Trainer for Everyone

Americans spend more than $10B every year on personal trainers. Evidence-based programming means designing workouts based on real data. The ShapeLog API unlocks strength training data for developers, trainers, clubs, and equipment manufacturers to help more users get healthy and strong. The ShapeLog API makes new coaching products possible:

  • Coaching apps on iOS & Android
  • Connected home gyms
  • Commercial club solutions
  • Physical therapy and corporate wellness programming

Dashboard example

Documentation

JSON-API CRUD Routes
controller:action  /route

activities:index    /activities
{
    "controller": "Activities",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

activities:add  /activities
{
    "controller": "Activities",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

activities:view /activities/:id
{
    "controller": "Activities",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

activities:edit /activities/:id
{
    "controller": "Activities",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

activities:delete   /activities/:id
{
    "controller": "Activities",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

activity_packets:index  /activity-packets
{
    "controller": "ActivityPackets",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

activity_packets:add    /activity-packets
{
    "controller": "ActivityPackets",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

activity_packets:view   /activity-packets/:id
{
    "controller": "ActivityPackets",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

activity_packets:edit   /activity-packets/:id
{
    "controller": "ActivityPackets",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

activity_packets:delete /activity-packets/:id
{
    "controller": "ActivityPackets",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

circuits:index  /circuits
{
    "controller": "Circuits",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

circuits:add    /circuits
{
    "controller": "Circuits",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

circuits:view   /circuits/:id
{
    "controller": "Circuits",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

circuits:edit   /circuits/:id
{
    "controller": "Circuits",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

circuits:delete /circuits/:id
{
    "controller": "Circuits",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

circuit_exercises:index /circuit-exercises
{
    "controller": "CircuitExercises",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

circuit_exercises:add   /circuit-exercises
{
    "controller": "CircuitExercises",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

circuit_exercises:view  /circuit-exercises/:id
{
    "controller": "CircuitExercises",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

circuit_exercises:edit  /circuit-exercises/:id
{
    "controller": "CircuitExercises",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

circuit_exercises:delete    /circuit-exercises/:id
{
    "controller": "CircuitExercises",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

devices:index   /devices
{
    "controller": "Devices",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

devices:add /devices
{
    "controller": "Devices",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

devices:view    /devices/:id
{
    "controller": "Devices",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

devices:edit    /devices/:id
{
    "controller": "Devices",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

devices:delete  /devices/:id
{
    "controller": "Devices",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

device_calibrations:index   /device-calibrations
{
    "controller": "DeviceCalibrations",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

device_calibrations:add /device-calibrations
{
    "controller": "DeviceCalibrations",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

device_calibrations:view    /device-calibrations/:id
{
    "controller": "DeviceCalibrations",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

device_calibrations:edit    /device-calibrations/:id
{
    "controller": "DeviceCalibrations",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

device_calibrations:delete  /device-calibrations/:id
{
    "controller": "DeviceCalibrations",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

device_types:index  /device-types
{
    "controller": "DeviceTypes",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

device_types:add    /device-types
{
    "controller": "DeviceTypes",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

device_types:view   /device-types/:id
{
    "controller": "DeviceTypes",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

device_types:edit   /device-types/:id
{
    "controller": "DeviceTypes",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

device_types:delete /device-types/:id
{
    "controller": "DeviceTypes",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

exercises:index /exercises
{
    "controller": "Exercises",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

exercises:add   /exercises
{
    "controller": "Exercises",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

exercises:view  /exercises/:id
{
    "controller": "Exercises",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

exercises:edit  /exercises/:id
{
    "controller": "Exercises",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

exercises:delete    /exercises/:id
{
    "controller": "Exercises",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

packets:index   /packets
{
    "controller": "Packets",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

packets:add /packets
{
    "controller": "Packets",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

packets:view    /packets/:id
{
    "controller": "Packets",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

packets:edit    /packets/:id
{
    "controller": "Packets",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

packets:delete  /packets/:id
{
    "controller": "Packets",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

remotes:index   /remotes
{
    "controller": "Remotes",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

remotes:add /remotes
{
    "controller": "Remotes",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

remotes:view    /remotes/:id
{
    "controller": "Remotes",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

remotes:edit    /remotes/:id
{
    "controller": "Remotes",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

remotes:delete  /remotes/:id
{
    "controller": "Remotes",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

sessions:index  /sessions
{
    "controller": "Sessions",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

sessions:add    /sessions
{
    "controller": "Sessions",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

sessions:view   /sessions/:id
{
    "controller": "Sessions",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

sessions:edit   /sessions/:id
{
    "controller": "Sessions",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

sessions:delete /sessions/:id
{
    "controller": "Sessions",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

session_members:index   /session-members
{
    "controller": "SessionMembers",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

session_members:add /session-members
{
    "controller": "SessionMembers",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

session_members:view    /session-members/:id
{
    "controller": "SessionMembers",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

session_members:edit    /session-members/:id
{
    "controller": "SessionMembers",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

session_members:delete  /session-members/:id
{
    "controller": "SessionMembers",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

session_results:index   /session-results
{
    "controller": "SessionResults",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

session_results:add /session-results
{
    "controller": "SessionResults",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

session_results:view    /session-results/:id
{
    "controller": "SessionResults",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

session_results:edit    /session-results/:id
{
    "controller": "SessionResults",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

session_results:delete  /session-results/:id
{
    "controller": "SessionResults",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

set_pkts:index  /set-pkts
{
    "controller": "SetPkts",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

set_pkts:add    /set-pkts
{
    "controller": "SetPkts",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

set_pkts:view   /set-pkts/:id
{
    "controller": "SetPkts",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

set_pkts:edit   /set-pkts/:id
{
    "controller": "SetPkts",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

set_pkts:delete /set-pkts/:id
{
    "controller": "SetPkts",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

stations:index  /stations
{
    "controller": "Stations",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

stations:add    /stations
{
    "controller": "Stations",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

stations:view   /stations/:id
{
    "controller": "Stations",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

stations:edit   /stations/:id
{
    "controller": "Stations",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

stations:delete /stations/:id
{
    "controller": "Stations",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

users:index /users
{
    "controller": "Users",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

users:add   /users
{
    "controller": "Users",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

users:view  /users/:id
{
    "controller": "Users",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

users:edit  /users/:id
{
    "controller": "Users",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

users:delete    /users/:id
{
    "controller": "Users",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

user_levels:index   /user-levels
{
    "controller": "UserLevels",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

user_levels:add /user-levels
{
    "controller": "UserLevels",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

userlevels:view /user-levels/:id
{
    "controller": "UserLevels",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

user_levels:edit    /user-levels/:id
{
    "controller": "UserLevels",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

user_levels:delete  /user-levels/:id
{
    "controller": "UserLevels",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}

user_physical_reports:index /user-physical-reports
{
    "controller": "UserPhysicalReports",
    "action": "index",
    "_method": "GET",
    "plugin": null
}

user_physical_reports:add   /user-physical-reports
{
    "controller": "UserPhysicalReports",
    "action": "add",
    "_method": "POST",
    "plugin": null
}

user_physical_reports:view  /user-physical-reports/:id
{
    "controller": "UserPhysicalReports",
    "action": "view",
    "_method": "GET",
    "plugin": null
}

user_physical_reports:edit  /user-physical-reports/:id
{
    "controller": "UserPhysicalReports",
    "action": "edit",
    "_method": [
        "PUT",
        "PATCH"
    ],
    "plugin": null
}

user_physical_reports:delete    /user-physical-reports/:id
{
    "controller": "UserPhysicalReports",
    "action": "delete",
    "_method": "DELETE",
    "plugin": null
}